上記の get_outputs
関数は、簡単な匿名関数に広く役立ちます。非常に素晴らしい。
また、「if」をMATLABで使用できないというコメントに関しては、これは部分的にしか真実ではありません。同一の動作は匿名で簡単に実装できます。たとえば、匿名の場合は次のようになります。
anonymous_if = @(varargin) varargin{2*find([varargin{1:2:end}], 1, 'first')}();
つかいます:
out = anonymous_if(condition1, action1, condition2, action2, ...);
最初の真の条件に対応するアクションが実行されます。たとえば、これは 'hello'を出力します。
anonymous_if(false, @() disp('hi'), ... % if false, print 'hi'
true, @() disp('hello')) % else if true, print 'hello'
確かに、一見するとちょっと複雑ですが、私はこのようなものを私の道に置いていますので、無名の関数で "if"を使うことができます。このように、もっと複雑な匿名関数を構築することができます。