我想创建一个函数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)。

通常不建议使用evalevalin,因为这会使您的代码更难以理解和重复使用。

09-06 04:16