我想做assignin(ws, 'var', val)
的函数内部,但此时我不知道工作区ws,它当前显示在matlab窗口内的工作区窗口中。我正在寻找一个声明,在上面的声明中替换了我的ws
。
可能是一个简单且常见的问题,但我没有找到答案。
答案 0 :(得分:5)
您似乎想要的是在当前工作区中执行assignin
。但这在MATLAB中是微不足道的,因为它是基本的任务:
var = val;
通过ws
参数的其他两个可访问工作区是:
'base'
,这是基础工作区(所有脚本都会在其中创建变量);
'caller'
,它是调用函数的工作空间(每次输入函数时都会创建此工作空间,退出函数时会被销毁),或者从脚本调用时创建全局工作空间。
答案 1 :(得分:-1)
我使用了以下解决方法:
function main()
...
assignhere(name,value)
...
return
function assignhere(varname,varvalue)
assignin('caller',varname,varvalue);
return
尽管我希望直接访问当前工作区