1

オクターブ セッションを格納およびロードする小さなヘルパー関数を書きたいと考えています。

function restoreSession(filename)
  history -r strcat('./states/',filename,'.history');
  load("-binary", strcat('./states/',filename,'.data')) 
endfunction


function saveSession(filename)
  history -w strcat('./states/',filename,'.history');
  save("-binary", strcat('./states/',filename,'.data')) 
endfunction

保存/読み込みコマンドはうまく機能します。私の問題は、履歴コマンドが引数を評価していないように見えることです。次のエラーが発生します。

  syntax error

>>>   history -r strcat('./states/',filename,'.history');
                                                       ^

私はすでにパスに一時変数を使用しようとしましたが、この場合、変数名をファイル名として解釈するだけで、ファイルが見つからないと文句を言います。

これを解決する方法を知っている人はいますか?

4

1 に答える 1

2

historyコマンドの代わりに関数構文で使用します。

history ("-r", strcat ("./states/", filename, ".history"));

すべてのコマンドは実際には関数です。コマンド構文 (括弧を使用しない場合) はすべての関数で使用できますが、より自然に見えるものもあります。括弧を省略すると、変数名も含めて、すべての引数が文字列として解釈されます。もっと手の込んだことをしたい場合は、それらを関数として呼び出します。

于 2013-05-29T11:07:18.663 に答える