簡體   English   中英

如何在MATLAB中的主函數內部調用函數?

[英]How to call function inside a main function in 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

我仍然無法運行此腳本。 有什么建議嗎?

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。

正如上面已經提到的,它可以正常工作...如果您只希望函數定義簡單的變量並調用另一個函數,@ ClydeW的答案就是一種明智的方法。 對於更復雜的變量,可以使用用savematfile創建並通過loadmatfile mat-file。

在Matlab術語中,您擁有的是局部函數

局部函數是在函數m文件中定義的附加函數,出現在“ main”函數的end 局部函數具有一個單獨的工作區,即,要使用主函數中的變量,則需要將其輸入到局部函數中

具有存儲在同一m文件中並由Matlab中的“主要”功能使用的“子功能”的其他替代方法是嵌套函數匿名函數

嵌套函數類似於局部函數,但出現在“ main”函數定義內,即end之前。 主要區別在於,嵌套函數具有訪問主函數工作區的權限,即可以使用和修改主函數中的變量而無需將它們明確地用作輸入或輸出

匿名函數的不同之處在於,它們需要在“ main”函數中再次使用不同的語法進行定義,但是要在使用之前(在文件中出現的時間早於對它們的調用)。 匿名函數的輸入來自主函數,但是匿名函數中使用的其他值使用定義匿名函數時來自主函數的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM