エラーを示す次の要約された例では、関数は配列内のインデックスでf_what(..)
入力引数の値を返す必要があります。y
ts
function Y = f_what(y, ts)
function get_out = get(t)
get_out = y(t);
end
Y = arrayfun(get, ts);
end
それを呼び出す:
>> f_what(1:10, 1:5)
Error using f_what/get (line 4)
Not enough input arguments.
Error in f_what (line 7)
Y = arrayfun(get, ts);
また、何らかの理由で、get(..)
上記と同じはずの次のものが機能します。
function Y = f_what(y, ts)
get = @(t) y(t);
Y = arrayfun(get, ts);
end
それを呼び出す:
>> f_what(1:10, 1:5)
ans =
1 2 3 4 5
「十分な入力引数がありません」 ...arrayfun(..)
この場合、1 つの引数で最初の引数を呼び出す必要があります。またget(..)
、1 つの入力引数があります。足りない理由がわかりません。
編集:さらに煮詰めた:
function Y = f_what
function get_out = get_(t)
get_out = t;
end
Y = arrayfun(get_, 1:5);
end
それでも同じエラーです。
編集 2:の代わりに ,@get
の最初の引数を指定すると機能します。しかし、なぜそれがないと機能しないのか、まだわかりません。arrayfun(..)
get
@