Octave 倍频程历史记录命令-变量作为文件名
我想写一个小助手函数来存储和加载倍频程会话Octave 倍频程历史记录命令-变量作为文件名,octave,Octave,我想写一个小助手函数来存储和加载倍频程会话 function restoreSession(filename) history -r strcat('./states/',filename,'.history'); load("-binary", strcat('./states/',filename,'.data')) endfunction function saveSession(filename) history -w strcat('./states/',filena
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命令运行良好。
我的问题是history命令似乎没有回避这个论点。
它会产生以下错误:
syntax error
>>> history -r strcat('./states/',filename,'.history');
^
我已经尝试对路径使用临时变量,但在本例中,它只将变量名解释为filename,并抱怨缺少文件
有人知道如何解决这个问题吗?用函数语法而不是命令使用
历史记录
history ("-r", strcat ("./states/", filename, ".history"));
所有命令实际上都是函数。命令语法(当您不使用括号时)适用于所有函数,但对于某些函数,它看起来更自然。省略括号时,所有参数都被解释为字符串,甚至变量名。如果您想做一些更有趣的事情,请将它们称为函数。好的,谢谢。我不知道这个事实。但它仍然不起作用。似乎负载和历史的呼唤对外界没有任何影响function@vlad_tepesch您可以使用'evalin(“调用者”,…)使其对调用者的作用域产生影响。谢谢,但如何将其应用于历史记录或加载并保存命令?我的saveSession restoreSession是脚本多于函数,但需要文件名参数。@vlad_tepesch不,不是。它们是函数。只需将对history
、save
和load
的函数调用转换为对evalin
的调用。谢谢,我得到了它:evalin(“调用者”,strcat(“历史('-r','./states/”,filename,.history'))代码>