可能重複:
Is it possible to define more than one function per file in MATLAB?有沒有辦法從文件外部調用MATLAB的「子功能」?
爲了定義一個MATLAB(不是匿名的)功能,您需要創建具有相同的名稱作爲函數的文件;例如,一個函數調用MYFUNC可以在文件myfunc.m被定義爲每:
function rtn = myfunc(arg)
% do some stuff
end
假設在同一個文件myfunc.m,我也有一個子功能,如
function rtn = myfunc(arg)
% do some stuff
end
function rtn = mysubfunc(arg)
% do some other stuff
end
據我所知,有沒有辦法從執行subfunc.m文件以外的任何地方發生訪問mysubfunc。在MATLAB(R2010b)中,我一直都很擔心這種小小的特質。我錯了 - 是否有任何方式來呼叫mysubfunc從外部myfunc.m?
更新:新問題:有沒有什麼好方法做到這一點?或者我應該真的把它吸了起來,並繼續製作更多文件?
不,你必須把它吸起來。我使用半命名空間方法來減少混亂,並鼓勵我重用自己的代碼(例如,在'heatflux'項目中,我將使用hf_開始所有函數名稱)。 – Alex 2011-05-12 07:14:21
這裏你的目標是什麼?你只是想減少在一個單獨的文件中的每個功能的混亂? – 2011-05-12 18:28:40
如果您需要訪問myfunc之外的子函數,那麼幾乎按照定義,它不應該是子函數。子函數應該保留用於僅在封閉函數的上下文中相關的通用功能。 – Marc 2011-05-13 19:31:27