Подавление вывода командного окна функции

Функция, которую я использую, имеет display() (или другие вещи, которые отображают сообщения в командном окне), поэтому она выводит много вещей (x 1200) в командной строке, когда я запускаю свой код, что затрудняет отслеживание и наблюдение. .

Есть ли способ подавить вывод этой конкретной функции? Завершение оператора точкой с запятой, очевидно, не помогает.


person Ali    schedule 12.06.2010    source источник


Ответы (2)



Самый простой способ — просто создать фиктивную функцию DISP/DISPLAY и поместить ее в папку private вместе с вашей собственной функцией:

приват/дисп.м

function disp(x)
    return
end

myFunc.m

function myFunc()
    %# ...
    disp(1)
end

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

Убедитесь, что вы НЕ добавляете эту личную папку в свой путь, просто укажите myFunc.m в пути (пожалуйста, прочитайте релевантно документы)

person Amro    schedule 12.06.2010
comment
Лучше: просто сделайте это внутренней функцией - внизу файла. Таким образом, вы не загрязняете пространство имен ничем, кроме этой функции. - person Marc; 13.06.2010
comment
Я думаю, для одной содержащейся функции, которая действительно проще и чище. Но в случае, если он вызывает другие функции для нескольких файлов (которые вы также хотите подавить их вывод), было бы проще сохранить одно единственное изменение, используя личную папку. - person Amro; 13.06.2010
comment
Имейте в виду, что он не будет работать с скомпилированными программами. Скомпилированный Matlab имеет тенденцию находить встроенные функции. - person Andrey Rubshtein; 01.03.2012