Matlab - 工作区变量的使用

时间:2011-07-27 11:28:00

标签: matlab

我想创建一个函数function ExtremePoints = AnalyseData( ScanData )

我希望能够在不传递参数ScanData的情况下运行该函数,在这种情况下,我想使用Matlab Workspace中具有相同名称的变量。

这是否可行,在函数体内部使用工作空间中出现的变量ScanData?

或者我应该先将工作空间中变量ScanData的内容保存到.mat文件中,然后将该文件加载到函数体中?

1 个答案:

答案 0 :(得分:11)

有可能,也许不完全推荐。方法如下:

function ExtremePoints = AnalyseData( ScanData )
if nargin == 0
    ScanData = evalin( 'base', 'ScanData' );
end
% do stuff

如果未提供输入参数(ScanData),则会从base工作空间中提取nargin == 0的值。

通常不鼓励使用evalevalin,因为它会使您的代码更难理解和重复使用。