Подавить вывод - PullRequest
       18

Подавить вывод

20 голосов
/ 01 марта 2012

Я хочу подавить вывод переменных в наборе функций Matlab. Проблема в том, что автор забыл ";" на многих позициях в коде. Для целей отладки этот вывод полезен, но теперь я хочу подавить его, не ища пропущенный ";" во всем коде. Есть ли возможность отключить этот вид вывода?

Ответы [ 4 ]

29 голосов
/ 25 июня 2013

Вы можете подавить вывод, используя evalc, но для этого необходимо передать выражение в виде строки. Например, если вы использовали:

[A,B,C] = notMyFunction(d,e,f);

Вы можете использовать вместо

[T,A,B,C] = evalc('notMyFunction(d,e,f);');

И любой вывод, который поступил бы на консоль, теперь будет буферизован и сохранен в T.

1 голос
/ 01 марта 2012

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

Да, вы можете перегрузить disp и display, не позволяя им работать так, как они должны, но тогда они не смогут работать и в обычных условиях.Вы разбили бы ценную часть matlab.

И извините, но добавление точки с запятой в конец вызова функции не влияет на то, нет ли у внутренних строк точек с запятой.Эти внутренне не определенные строки будут по-прежнему выводить свои результаты в командное окно.

1 голос
/ 01 марта 2012

Как насчет вызова этих функций с точкой с запятой в конце?Поэтому вместо вызова

my_function()

просто введите

my_function();

Редактировать: http://www.mathworks.de/help/techdoc/ref/evalc.html evalc('my_function()'); Редактировать2: Слишком поздно

0 голосов
/ 19 октября 2015

при вызове функции необходимо поставить знак «;» в конце, иначе вывод будет отображаться независимо от пользовательских функций или функций, предопределенных для matlab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...