Anzeige einer einzelnen Datei in GNU Octave (echo fcnname on)

314
hyiltiz

Die Frage ist einfach: In MATLAB können Sie einfach echo myFun onden echoStatus einer einzelnen Funktions- M-Datei auf setzen on, die Ihnen dann jede ausgeführte Zeile anzeigt.

In GNU Octave fehlt jedoch eine solche Syntax. help echozeigt an:

octave:1> help echo 'echo' is a built-in function from the file libinterp/corefcn/input.cc  -- Command: echo -- Command: echo on -- Command: echo off -- Command: echo on all -- Command: echo off all Control whether commands are displayed as they are executed.  Valid options are:  'on' Enable echoing of commands as they are executed in script files.  'off' Disable echoing of commands as they are executed in script files.  'on all' Enable echoing of commands as they are executed in script files and functions.  'off all' Disable echoing of commands as they are executed in script files and functions.  With no arguments, 'echo' toggles the current echo state.  Additional help for built-in functions and operators is available in the online version of the manual. Use the command 'doc <topic>' to search the manual index.  Help and information about Octave is also available on the WWW at http://www.octave.org and via the help@octave.org mailing list. 

Wenn Sie tiefer graben, sagt die Infoseite mehr:

 -- Built-in Function: VAL = echo_executing_commands () -- Built-in Function: OLD_VAL = echo_executing_commands (NEW_VAL) -- Built-in Function: echo_executing_commands (NEW_VAL, "local") Query or set the internal variable that controls the echo state.  It may be the sum of the following values:  1 Echo commands read from script files.  2 Echo commands from functions.  4 Echo commands read from command line.  More than one state can be active at once. For example, a value of 3 is equivalent to the command 'echo on all'.  The value of 'echo_executing_commands' may be set by the 'echo' command or the command line option '--echo-commands'.  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. 

Etwas wie mein Versuch könnte das Problem möglicherweise lösen. Wie in der Dokumentation bereits erwähnt, wirkt sich dies jedoch auf die Funktion und alle Aufrufe von Unterprogrammen aus . Das Problem ist also immer noch nicht gelöst. Ich dachte, ich hätte meine eigene Frage beantwortet, aber ich stellte fest, dass ich dies nicht tat.

Fügen Sie einfach echo_executing_commands(2, 'local');am Anfang der Funktionsdatei ein Debugging hinzu. Mit anderen Worten, öffnen Sie myFun.mdie Anweisung und fügen Sie sie am Anfang der Funktion m-file ein. Beachten Sie, dass dies nur die Octave-Funktion ist. Um vollständig kompatibel zu sein, verwenden Sie:

if exist('OCTAVE_VERSION', 'builtin') ~= 0; echo_executing_commands(2, 'local');end

0

1 Antwort auf die Frage

0
hyiltiz

Das funktioniert nicht

Fügen Sie einfach echo_executing_commands(2, 'local');am Anfang der Funktionsdatei ein Debugging hinzu. Mit anderen Worten, öffnen Sie myFun.mdie Anweisung und fügen Sie sie am Anfang der Funktion m-file ein. Beachten Sie, dass dies nur die Octave-Funktion ist. Um vollständig kompatibel zu sein, verwenden Sie:

if exist('OCTAVE_VERSION', 'builtin') ~= 0; echo_executing_commands(2, 'local');end