传递空函数句柄作为参数MATLAB

时间:2016-11-19 11:35:46

标签: 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我不想将任何函数作为参数传递,以便例如对于第一次迭代我会有

(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.

1 个答案:

答案 0 :(得分:0)

基于hbaderts的评论答案是

function varargout = doNothing(varargin)
    varargout = varargin;
end