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