如何在MATLAB中调用main函数内的函数?

时间:2014-06-16 15:54:07

标签: matlab

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

我在MATLAB中做了如下:

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

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

无论如何我无法运行此脚本。请提出任何建议吗?

2 个答案:

答案 0 :(得分:2)

没有"主要"在MATLAB中的功能。您应该将其内容移动到单独的脚本,如下所示:

脚本1:

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

脚本2(称为" MyFunction.m"):

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

然后运行脚本1。

答案 1 :(得分:2)

正如上面已经评论过的那样它工作得很好......如果你想让函数做的就是定义简单变量并调用另一个函数@ ClydeW答案是一种明智的方法。对于更复杂的变量,使用savematfile创建并使用loadmatfile恢复的mat文件可用。

在Matlab术语中,你有local function

本地函数是在函数m文件中定义的额外函数,出现在" main"的end之后。功能。本地函数有一个单独的工作区,即使用主函数中的变量,它们需要输入到本地函数

具有"子功能的其他替代方案"它们存储在同一个m文件中,并由" main" Matlab中的函数是Nested Functionsanonymous functions

嵌套函数类似于本地函数,但出现在" main"功能定义,即在end之前。主要区别在于嵌套功能可以访问主要功能工作区,即可以使用&从主函数修改变量而不将它们明确地作为输入或输出

匿名函数完全不同,因为他们需要在" main"中再次使用不同的语法进行定义。功能,但在使用之前(在文件中出现比调用它们更早)。匿名函数的输入来自main函数,但匿名函数中使用的其他值在定义匿名函数时使用main函数中的值。