【发布时间】:2014-05-21 17:34:01
【问题描述】:
我正在使用 Matlab R2013a,并尝试在函数中使用“谁”函数来检索以名称开头的变量列表。
假设我的工作区中有一个变量列表,如下所示:
- a = 1
- a_2 = 2
- a_3 = 3
当我运行这个时:
who('a*');
效果很好。
但是当我在这样的函数中运行相同的东西时:
function someFunction()
who('a*');
end
或
function someFunction()
disp(who('a*'));
end
它没有。没有错误,只是没有输出。
如果我将这些变量保存在一个名为
的 Matlab 文件中myVariables.mat
并像这样在同一个函数中运行它:
function someFunction()
who('a*','myVariables');
end
还是不行。
我可以理解为什么第一个可能由于范围而不起作用,但是指定运行“谁”功能的文件应该可以工作......我错过了什么?
任何帮助将不胜感激。
问候
迪亚
【问题讨论】:
-
是的,它已经加载了。我的意思是我可以在调用 who 函数之前强制加载函数。
-
如果您以前没有阅读过
doc who,我建议您至少彻底阅读一次。我可以在那里看到解决方案。 -
@Divakar 强制在函数接缝中加载 MATLAB 文件,谢谢。但是您会认为使用 location 参数就足够了。再次感谢,非常感谢。
-
@Divakar 我现在知道我做错了什么,这个:
disp(who('brain10*','Results_v2'));应该是这样的:disp(who('brain10*','-file','Results_v2'));。它现在工作正常,谢谢。你每天/晚上都能学到新东西。 -
太棒了!但是函数使用封装是有原因的,因此必须避免在函数内部加载文件。丹尼尔的建议在这方面是有道理的。
标签: matlab