Запретить печать вывода в октавном скрипте без добавления везде точки с запятой? - PullRequest
1 голос
/ 29 мая 2020

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

Однако это также может быть серьезным раздражением при работе со сценариями, когда вы забываете точку с запятой и внезапно возникают большие задержки в GUI из-за страниц над страницами вывода для этих 10000 Матрица × 10000.

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

1 Ответ

2 голосов
/ 29 мая 2020

Да, октава предоставляет silent_functions.

По умолчанию ложно (т. Е. 0).

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

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

Из документов:

 -- silent_functions (NEW_VAL, "local")
 Query or set the internal variable that controls whether internal
 output from a function is suppressed.

 If this option is disabled, Octave will display the results
 produced by evaluating expressions within a function body that are
 not terminated with a semicolon.

 When called from inside a function with the "local" option, the
 variable is changed locally for the function and any subroutines it
 calls.  The original variable value is restored when exiting the
 function.

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

...