我有一个代码:
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我不想将任何函数作为参数传递,以便例如对于第一次迭代我会有
(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.
答案 0 :(得分:0)
基于hbaderts的评论答案是
function varargout = doNothing(varargin)
varargout = varargin;
end