octave history命令 - 变量as filename

时间:2013-05-29 09:34:27

标签: 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

save / load命令效果很好。 我的问题是,历史命令似乎不能证明这一论点。 它会产生以下错误:

  syntax error

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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