我在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
无论如何我无法运行此脚本。请提出任何建议吗?
答案 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答案是一种明智的方法。对于更复杂的变量,使用save
或matfile
创建并使用load
或matfile
恢复的mat文件可用。
在Matlab术语中,你有local function
本地函数是在函数m文件中定义的额外函数,出现在" main"的end
之后。功能。本地函数有一个单独的工作区,即使用主函数中的变量,它们需要输入到本地函数
具有"子功能的其他替代方案"它们存储在同一个m文件中,并由" main" Matlab中的函数是Nested Functions和anonymous functions
嵌套函数类似于本地函数,但出现在" main"功能定义,即在end
之前。主要区别在于嵌套功能可以访问主要功能工作区,即可以使用&从主函数修改变量而不将它们明确地作为输入或输出
匿名函数完全不同,因为他们需要在" main"中再次使用不同的语法进行定义。功能,但在使用之前(在文件中出现比调用它们更早)。匿名函数的输入来自main函数,但匿名函数中使用的其他值在定义匿名函数时使用main函数中的值。