2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 mex -функция не выводит текст в консоль matlab
Сообщение22.04.2018, 21:45 
Недавно установил matlab2014b вместо (2013 версии), и к своему удивлению обнаружил, что потоковый ввод вывод в командное окно больше не работает.
Мои mex-функции таким путём выводили некоторые комментарии, вот пример:
Используется синтаксис C++
  char mem[100];
  sprintf(mem,"%.6f",Result);
  std::cout<<"итоги выполнения: "<<mem<<std::endl;
 


Всё было отлично, но теперь никаких комментариев нет, причём сама функция работает нормально, и вычисляет всё правильно.
Подумал, что она теперь выводит в какое то другое окно - оно создаётся и сразу гаснет. Для проверки я дописал потоковый ввод? чтобы она остановилась и запросила ввести значение

Используется синтаксис C++
  char buf[100];
  std::cin>>buf;
 


но она почему то не останавливается. Ни ошибок ни сообщений никаких, просто завершает работу как ни в чём не бывало.

Не подскажете в чём может быть дело?

На всякий случай вставил фрагмент
Используется синтаксис C++
 Beep(1000,1000);
 

звуковой сигнал подаётся нормально

 
 
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение22.04.2018, 23:20 
Аватара пользователя
Andrey_Kireew в сообщении #1306502 писал(а):
обнаружил, что потоковый ввод вывод в командное окно больше не работает.

А разве в документации где-то было, что должно было работать хоть в какой-то версии?

-- 22.04.2018, 23:29 --

https://www.mathworks.com/help/matlab/a ... rintf.html - легальный способ...

 
 
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение22.04.2018, 23:45 
Ну не знаю, может и не написано, но у меня работало.
И почему бы не работать, это С программа, компилятор VC2010. Может только в командное окно не выводить - это да, а как же потоковый ввод, он то должен программу останавливать? С каким окном теперь работают cin и cout интересно?

Что характерно, printf - текст выводит в командное окно нормально (только сейчас обнаружил), в принципе я могу комментарии и им выводить, но всё равно интересно, особенно на счёт ввода.

-- 23.04.2018, 00:49 --

Теперь понятно mexPrintf(message) для этого предназначен, а всё остальное работает "по ошибке",
наверное и для ввода что то есть ...

 
 
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение23.04.2018, 00:44 
Аватара пользователя
Andrey_Kireew в сообщении #1306537 писал(а):
всё остальное работает "по ошибке"

Да, точнее это просто "недокументированная функциональность", которая потому и меняется от версии к версии.
Andrey_Kireew в сообщении #1306537 писал(а):
наверное и для ввода что то есть

Не встречал. Да и не очень осмысленно - mex пишется ведь для критических по времени блоков.

-- 23.04.2018, 00:46 --

Кстати, файлы тоже открывать напрямую не стоит...

 
 
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение23.04.2018, 01:37 
Geen в сообщении #1306557 писал(а):
Кстати, файлы тоже открывать напрямую не стоит...


Спасибо, буду иметь ввиду

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group