Найти, где вывод командной строки создается в сложной программе - PullRequest
4 голосов
/ 03 апреля 2012

У меня есть большая, сложная программа MATLAB.Где-то внутри этого числа испускается число 0, поэтому, когда я запускаю его, я вижу, что это повторяется много раз:

ans =

     0

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

1 Ответ

7 голосов
/ 03 апреля 2012

У вас есть несколько вариантов:

  • Откройте каждый из ваших скриптов / функций в редакторе MATLAB, который визуально покажет, где есть строки, в которых отсутствует завершающая точка с запятой (при условии, чтопредупреждение не подавляется в настройках Code Analyzer ).Обратите внимание на оранжевую волнистую линию в этом примере функции:

    enter image description here

  • Используйте функцию CHECKCODE (ранее MLINT ) чтобы найти строки в ваших скриптах / функциях, в которых отсутствуют завершающие точки с запятой.Для примера функции сверху:

    >> mlint('test')
    L 2 (C 4): Terminate statement with semicolon to suppress output (in functions).
    
  • Используйте команду, повторяющуюся .Это напечатает каждую строку кода в командном окне по мере его оценки.Затем все, что вам нужно сделать, это найти строку, предшествующую нежелательному выводу, чтобы найти, где вы пропустили точку с запятой.Я бы попробовал набрать один из этих параметров в командной строке:

    echo name_of_your_file on;  %# Turns on echoing for the function file
    echo on all;                %# Turns on echoing for all function files
    

    Будьте предупреждены ... вы, вероятно, получите много вывода, выводимого в командное окно с этой опцией.

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