我在Matlab上編寫了一些程序。我在.m文件中做。現在它有300多個代碼串,所以閱讀起來不太舒服。我的想法是像在C++中一樣使用它:我想在這個文件的末尾創建本地函數,並將代碼放入其中。這將很容易閱讀,它會包含一些邏輯部分。代碼組織Matlab
但是我面臨的事實是本地函數只能在其他函數體中創建!所以我不能創造這樣的:
x = 1;
y = 2;
z = myLocalFnc(x,y);
function res = myLocalFnc (a,b)
res = a.*b;
end
此產生錯誤:
Function definitions are not permitted in this context.
我可以包括整個代碼轉換成一個功能做到這一點:
function myBigFcn
x = 1;
y = 2;
z = myLocalFnc(x,y);
end
function res = myLocalFnc (a,b)
res = a.*b;
end
但現在所有的變量變成本地變量,並且它不返回工作區。 修改此功能的輸入/輸出任何時候我創建一些變量 - 我不認爲我走正確的方式... Here描述了這種方法的優點和缺點。
我知道我可以在附加的.m文件中創建函數,保存它並在我的腳本中使用 - 好吧,但其中很多是單操作的,我不想創建這麼多的新文件。
我的問題是任何其他的代碼組織方法?
@excaza我想我*唯一的原因是因爲我們現在在2016b有一個* actual *解決方案,應該注意。 – Suever
@Suever所以添加它作爲答案的愚蠢。沒有理由在第一時間回答這個問題...... – excaza