簡體   English   中英

功能中沒有足夠的輸入參數

[英]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.

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