Anzeigen der Ausführung einer einzelnen Datei in GNU Octave (echo fcnname on)

Anzeigen der Ausführung einer einzelnen Datei in GNU Octave (echo fcnname on)

Die Frage ist einfach: In MATLAB können Sie einfach verwenden, echo myFun onum den echoStatus eines einzelnenFunktionm-Datei nach on, das Ihnen dann jede der ausgeführten Zeilen anzeigt.

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

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 [email protected]
mailing list.

Bei genauerem Hinsehen erfahren Sie auf der 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.

So etwas wie mein Versuch unten könnte das Problem möglicherweise lösen; wie die Dokumentation jedoch andeutet, wirkt es sich auf dieFunktion und beliebig Unterprogrammaufrufe. Das Problem ist also immer noch nicht gelöst. Ich dachte, ich hätte meine Frage selbst beantwortet, aber ich stellte fest, dass das nicht der Fall war.

Fügen Sie einfach echo_executing_commands(2, 'local');am Anfang der Funktionsdatei „debugging needs“ hinzu; mit anderen Worten, öffnen Sie myFun.mund fügen Sie die Anweisung am Anfang der Funktionsdatei „m-file“ ein. Beachten Sie, dass diesnurOktavfunktion. Um vollständige Kompatibilität zu gewährleisten, verwenden Sie:

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

Antwort1

Das funktioniert nicht

Fügen Sie einfach echo_executing_commands(2, 'local');am Anfang der Funktionsdatei „debugging needs“ hinzu; mit anderen Worten, öffnen Sie myFun.mund fügen Sie die Anweisung am Anfang der Funktionsdatei „m-file“ ein. Beachten Sie, dass diesnurOktavfunktion. Um vollständige Kompatibilität zu gewährleisten, verwenden Sie:

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

verwandte Informationen