2014-06-16 154 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」函數中再次使用,但在使用之前(在文件中比在調用它們之前更早出現)。匿名函數的輸入來自主函數,但匿名函數中使用的其他值在定義匿名函數時使用來自主函數的值。