在GUI中,我希望允许用户从工作空间中导入值。因此,我想显示工作空间中定义的变量列表,并让用户选择一个。类似的事情做,例如,在cftool对x-和y- (和z- )数据。
但是,如果我who在函数中使用它,它不会列出工作空间中的变量(注意:以下代码mytestvar在您的工作空间中创建或覆盖变量):
function listwsvars()
assignin('base','mytestvar',1);
vars = whos('global');
vars
end
Run Code Online (Sandbox Code Playgroud)
如果省略global参数或使用who代替,结果是相同的whos。
知道如何在工作区中获取变量列表吗?反过来,我该如何访问它们呢?
默认情况下,whos将在活动工作空间中返回变量(在这种情况下,为function listwsvars)。使用global选项,它将返回全局工作区中的那些。如果尚未定义全局变量,则确实会返回空。
一个可能的解决方案是使用以下whos命令在基本工作区中评估命令evalin:
function listwsvars()
assignin('base','mytestvar',1);
vars = evalin('base','whos');
vars
end
Run Code Online (Sandbox Code Playgroud)
vars 是一个结构数组,其中包含有关基本工作空间中所有可用变量的信息。
| 归档时间: |
|
| 查看次数: |
26 次 |
| 最近记录: |