使用matlabs保存在函数中

Moe*_*Moe 4 workspace matlab scope save

是否可以在函数内使用Matlab save命令来存储工作空间变量?

请考虑以下场景:我在Matlab工作区中有一堆变量,并希望在.mat文件中以"a"和"b"开头.当然这有效:

save('test.mat','a*','b*')
Run Code Online (Sandbox Code Playgroud)

但我希望有一个可变的文件名.我写的功能:

function save_with_name(name)
save(name,'a*','b*')
Run Code Online (Sandbox Code Playgroud)

不起作用,因为save_with_name没有看到工作区变量.有没有我可以使用的解决方案?

Hug*_*lle 5

您需要save在基础工作区中进行评估.

function save_with_name(name)
expression = ['save(''', name, ''',''a*'',''b*'')'];
evalin('base',expression);
Run Code Online (Sandbox Code Playgroud)

表达式中的双引号('')是允许引号字符本身(')所必需的.因此,您正在寻找的命令是:evalin

  • +1.可能想要''来电'而不是''基地'; 那么当从其他函数调用时它也会起作用. (2认同)