2014-06-16 215 views
1

我在MATLAB中有一个函数,比如[o1, o2]=MyFunction(i1,i2),我有一个主函数,它也被称为main函数。这甚至有意义吗?如何在MATLAB中调用主函数中的函数?

我这样做是在MATLAB如下:

function main 
    i1=1; 
    i2=2; 
    [o1, o2]=MyFunction(i1, i2); 
end 

function [o1, o2]=MyFunction(i1, i2) 
    %Code goes here. 
end 

我也看不运行此脚本。请提出任何建议?

+2

只要您将值分配给“MyFunction”主体内的“o1”和“o2” –

回答

2

MATLAB中没有“main”函数。你应该将它的内容到一个单独的脚本,如下所示:

脚本1:

i1=1; 
i2=2; 
[o1, o2]=MyFunction(i1, i2); 

脚本2(称为 “MyFunction.m”):

function [o1, o2]=MyFunction(i1, i2) 
    %Code goes here. 
end 

然后运行脚本1

2

因为它已被评论以上它工作正常......同样,如果你想要的功能是定义简单变量和调用另一个函数@ClydeW的答案是一个明智的方式来做到这一点。对于使用savematfile创建并用loadmatfile恢复的更复杂的变量文件可用。

在Matlab中的术语你有什么有一个local function

局部功能是一个函数m文件中定义的附加功能,“主”功能的end之后出现。本地功能有一个独立的工作空间,即使用主功能的变量,他们将需要输入到本地功能

其他替代方案具有存储在同一个m文件中的“子功能”内Matlab的“主要”功能是Nested Functionsanonymous functions

嵌套函数类似于本地功能,但end之前,即“主”函数定义中出现。主要的差别在于一个嵌套函数具有存取权限的主要功能的工作区,即可以使用&修改从主函数变量,而不需要明确地作为输入或输出

匿名函数是相当不同的,因为它们需要与限定不同的语法在“main”函数中再次使用,但在使用之前(在文件中比在调用它们之前更早出现)。匿名函数的输入来自主函数,但匿名函数中使用的其他值在定义匿名函数时使用来自主函数的值。