2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 mex -функция не выводит текст в консоль matlab
Сообщение22.04.2018, 21:45 


07/10/15

2400
Недавно установил 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 
Заслуженный участник
Аватара пользователя


01/09/13
4319
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 


07/10/15

2400
Ну не знаю, может и не написано, но у меня работало.
И почему бы не работать, это С программа, компилятор VC2010. Может только в командное окно не выводить - это да, а как же потоковый ввод, он то должен программу останавливать? С каким окном теперь работают cin и cout интересно?

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

-- 23.04.2018, 00:49 --

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

 Профиль  
                  
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение23.04.2018, 00:44 
Заслуженный участник
Аватара пользователя


01/09/13
4319
Andrey_Kireew в сообщении #1306537 писал(а):
всё остальное работает "по ошибке"

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

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

-- 23.04.2018, 00:46 --

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

 Профиль  
                  
 
 Re: mex -функция не выводит текст в консоль matlab
Сообщение23.04.2018, 01:37 


07/10/15

2400
Geen в сообщении #1306557 писал(а):
Кстати, файлы тоже открывать напрямую не стоит...


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group