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
尽管我更愿意直接访问当前工作区
我想做的一个函数里面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
尽管我更愿意直接访问当前工作区