我正在使用 Matlab R2013a ,我正在尝试使用' who'函数内的函数,用于检索以名称开头的变量列表。
假设我的工作区中有一个变量列表,如下所示:
当我运行时:
who('a*');
它工作正常。
但是当我在这样的函数中运行相同的东西时:
function someFunction()
who('a*');
end
或
function someFunction()
disp(who('a*'));
end
它没有。没有错误,只是没有输出。
如果我将这些变量保存在名为
的Matlab文件中myVariables.mat
并在同一个函数中运行它:
function someFunction()
who('a*','myVariables');
end
它仍然无法运作。
我可以理解为什么第一个可能因为范围而无效,但是指定文件来运行' who'功能应该工作......我错过了什么?
任何帮助都将不胜感激。
此致
Diaa
答案 0 :(得分:1)
作为mentioned by @Daniel,函数的工作空间与基础工作空间分开。有两种方法可以在m文件中使用who
来检查基础工作区:
答案 1 :(得分:0)
您正在尝试访问函数中的变量。只有输入参数和全局变量在函数中可见。你必须做类似的事情:
function someFunction(a1,a2)
who('a*');
end
如果您真的尝试使用动态变量名称,我强烈建议您更改设计。