Как остановить печать из автономного приложения в Matlab?

Мне нужно запустить отдельное приложение aTool.exe из файла .m Gen.m.
Я помещаю команду в Gen.m для выполнения aTool.exe как

system('aTool.exe');

Все работало нормально. Однако, поскольку aTool.exe выполняет много операций печати в командном окне, выполнение этой команды занимает вечность. Я написал Gen.m. «ATool.exe» - это приложение с открытым исходным кодом, поэтому у меня нет доступа к исходным кодам. Предполагается, что aTool.exe сгенерирует 3 текстовых файла: Result1.txt, Result2.txt и Result3.txt в конце. Когда он запускается, он выводит на экран некоторые сообщения об обработке. Эти три текстовых файла - это то, что мне нужно, но мне не нужны те сообщения, которые обрабатывают во время работы.

Кто-нибудь знает, как я могу остановить печать «aTool.exe» в командном окне при запуске файла Gen.m? я пытался

matlab -nodisplay -nojvm -nosplash -nodesktop -r Gen > matlab.out

Это не сработало. Командное окно все еще выскакивало и начало печать.


person Cassie    schedule 02.10.2012    source источник
comment
У некоторых людей просто противоположные проблемы :) это stdout или stderr печатается, вы знаете?   -  person angainor    schedule 02.10.2012
comment
Возможно, это поможет?   -  person Colin T Bowers    schedule 02.10.2012


Ответы (1)


Вы можете записать вывод в переменной, используя выходные аргументы system. Это позволит вам проверить наличие ошибок и, возможно, извлечь полезные биты из вывода. Пока вы используете точку с запятой для подавления эха, она не будет отображаться в командном окне.

[status,result] = system('aTool.exe');

Или я думаю, вы можете отказаться от его вывода, используя перенаправление внутри системного вызова.

system('aTool.exe > NUL');

Захват вывода первым способом упростит отладку в долгосрочной перспективе. Но если это действительно тонна вывода, вы можете в конечном итоге буферизовать большой объем данных.

person Andrew Janke    schedule 02.10.2012
comment
Большое Вам спасибо. Мне жаль, что я не уточнил четко. Пересмотрю свой вопрос чуть выше. Используя систему команд ('aTool.exe ›NUL'), он действительно прекратил выводить сообщение на экран. Однако он также прекратил генерировать те 3 текстовых файла, которые мне нужны. Есть ли способ сохранить эти 3 файла в конце без этих сообщений обработки во время прогона? - person Cassie; 02.10.2012