如何从另一个脚本中“调用”Matlab函数

9

我的Matlab脚本.m文件变得越来越大。

我想通过将主文件中的函数移动到几个其他.m文件中,每个文件基于功能类别,从而将功能移动到多个.m文件中。

主.m文件如何“调用”这些其他新.m文件中的函数?


7
阅读编程脚本和函数以了解scriptfunction之间的区别。然后更详细地查看function部分,以了解如何在独立文件中编写独立函数。 - Hoki
如果文件名与函数名相同,并且该文件位于活动目录中(或已添加到路径中),则您可以像调用任何其他函数一样直接调用它... - Dan
Dan:明白了。每个函数都必须有一个.m文件吗?我希望每个.m文件可以包含多个函数。 - Doug Null
2
本地和嵌套函数不可从外部调用。您的选择是使用类或包。 - sco1
看一下这个问题:在MATLAB中是否可以在一个文件中定义多个函数?。也许那才是你真正想问的问题。它回答了如何做你所希望的事情,但没有简单和容易的方法来将多个函数放入一个m文件中。 - Hoki
显示剩余2条评论
1个回答

10

我的回答中提供的所有信息都可以在MATHWORKS的函数基础知识中找到。

如何在MATLAB中创建一个函数?您可以使用以下模板。另外,函数的名称和文件名应该是相似的。

% ------------------- newFunc.m--------------------
function [out1,out2] = newFunc(in1,in2)
out1 = in1 + in2;
out2 = in1 - in2;
end
%--------------------------------------------------

要使用多个函数,您可以将它们应用于单独的m-file,也可以使用nested/local结构:

单独的m文件:

在这种结构中,您将每个函数放入单独的文件中,然后通过其名称在主文件中调用它们:

%--------- main.m ----------------
% considering that you have written two functions calling `func1.m` and `func2.m`
[y1] = func1(x1,x2);
[y2] = func2(x1,y1);
% -------------------------------

本地函数:

在这个结构中,您有一个单独的m文件,在这个文件中,您可以定义多个函数,例如:

% ------ main.m----------------
    function [y]=main(x)
    disp('call the local function');
    y=local1(x)
    end

    function [y1]=local1(x1)
    y1=x1*2;
    end
%---------------------------------------

嵌套函数:

在这种结构中,函数可以包含在另一个函数中,例如:

%------------------ parent.m -------------------
function parent
disp('This is the parent function')
nestedfx

   function nestedfx
      disp('This is the nested function')
   end

end
% -------------------------------------------

您不能从m文件外部调用嵌套函数。要这样做,您必须使用每个函数单独的m文件,或使用类结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接