[英]Not enough input arguments in function
我有這種形式的功能
function [g] = g(i,j)
k=1;
if i==0
g=0;
elseif i==k
g=j;
end
我不希望代碼中的第二行。 相反,我希望函數從主程序中讀取k。 我不想寫
function [g] = g(i,j,k)
相反,因為這樣我將不得不在主程序的代碼中寫出g作為i,j和k的函數。 還有另外一種方法嗎?
您可以使用匿名函數來創建閉包 。 將您的功能定義為
function [g] = g(i,j,k)
if i==0
g=0;
elseif i==k
g=j;
end
end
然后在你的主腳本中你可以做類似的事情
k=1;
g2 = @(i,j)g(i,j,k);
現在你可以按照你之前調用g
的方式調用g2
,但k
將為1
,它將在你的主腳本而不是你的函數中定義。
或者你甚至可以完全跳過k
並定義:
g1 = @(i,j)g(i,j,1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.