MATLAB - 获取当前工作区

MATLAB - get current workspace

我想做的一个函数里面assignin(ws, 'var', val),但是此时我不知道工作空间ws,目前显示在matlab里面的工作空间window[=16] =].我正在寻找一个语句来替换上面语句中的 ws

可能是一个简单且常见的问题,但我没有找到答案。

您似乎想要的是在当前工作区中执行 assignin。但这在 MATLAB 中是微不足道的,因为基本赋值是:

var = val;

另外两个可通过 ws 参数访问的工作区是:

  • 'base',这是基础工作区(所有脚本都会在其中创建变量);

  • 'caller',这是调用函数的工作空间(这个工作空间在每次进入函数时创建,退出函数时销毁),或者调用时的全局工作空间来自脚本。

我使用了以下解决方法:

function main()
...
assignhere(name,value)
...
return

function assignhere(varname,varvalue)
assignin('caller',varname,varvalue);
return

尽管我更愿意直接访问当前工作区