1

我想编写存储和加载 octave 会话的小辅助函数。

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

保存/加载命令运行良好。我的问题是 history 命令似乎没有评估参数。它会产生以下错误:

  syntax error

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

我已经尝试使用临时 var 作为路径,但在这种情况下,它仅将变量名解释为文件名并抱怨丢失的文件。

有人知道如何解决这个问题吗?

4

1 回答 1

2

使用history函数语法而不是命令。

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

所有命令实际上都是函数。命令语法(当您不使用括号时)可用于所有函数,只是碰巧对某些函数来说它看起来更自然。当您省略括号时,所有参数都被解释为字符串,甚至变量名。如果你想做一些更花哨的事情,把它们称为函数。

于 2013-05-29T11:07:18.663 回答