2
我有likt此一代碼:通行證空功能句柄作爲參數MATLAB
bla = {[], @fftshift, @ifftshift};
for aa=1:numel(bla)
for bb=1:numel(bla)
for cc=1:numel(bla)
for dd=1:numel(bla)
[~, ~, ~] = somefunction(bla{aa}, bla{bb}, bla{cc}, bla{dd});
end
end
end
end
而在somefunction
我有
Y = func1(fft(func2(blablabla)));
其中的func1和func2函數由BLA {AA}和BLA {取代BB}。
如果我運行此代碼我得到一個錯誤
Subscript indices must either be real positive integers or logicals.
我怎麼能告訴MATLAB我不想通過任何函數作爲參數,使如對於第一次迭代I必須
(fft((blablabla)))
編輯
我已經嘗試過寫一個 「空」 的功能,並通過其句柄作爲參數
function donothing()
end
bla = {@donothing, @fftshift, @ifftshift};
,只是
bla = {[], @fftshift, @ifftshift};
或
bla = {'', @fftshift, @ifftshift};
但在所有情況下,我得到了Subscript indices must either be real positive integers or logicals.
或Too many input arguments.
傳遞的句柄標識的功能,而不是一個空數組:'H = @( x)x'。 – buzjwa
不,這不起作用。我得到'太多的輸入參數。' – Colonder
啊哈,所以你想要一個具有多個輸入和輸出的函數。如果你有特定數量的參數,你可以用'h = @(x1,x2,x3)處理(x1,x2,x3)',例如3個參數。 – buzjwa