我想创建一个函数function ExtremePoints = AnalyseData( ScanData )
。
我希望能够在不传递参数ScanData的情况下运行该函数,在这种情况下,我想使用Matlab Workspace中具有相同名称的变量。
是否可以在函数体内使用出现在工作区中的变量ScanData?
还是应该首先将变量ScanData的内容从工作区保存到.mat文件中,然后将该文件加载到函数主体中?
最佳答案
有可能,也许不完全推荐。就是这样:
function ExtremePoints = AnalyseData( ScanData )
if nargin == 0
ScanData = evalin( 'base', 'ScanData' );
end
% do stuff
如果未提供任何输入参数,则会从
ScanData
工作空间中提取base
的值(nargin == 0
)。通常不建议使用
eval
和evalin
,因为这会使您的代码更难以理解和重复使用。