Подтвердить что ты не робот

Подавление выхода

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

my_function()

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

my_function();

Изменить: http://www.mathworks.de/help/techdoc/ref/evalc.html evalc('my_function()'); Edit2: слишком поздно

Ответ 4

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