Matlab で式の値を別の式の n番目の戻り値にバインドする慣用的な方法はありますか?
たとえば、セル配列に格納されている多数のベクトルの最大値に対応するインデックスの配列が必要だとします。私はそれを行うことができます
function I = max_index(varargin)
[~,I]=max(varargin{:});
cellfun(@max_index, my_data);
max_index
ただし、これには、式で特定の戻り値を選択する場合ごとに固有の関数 ( ) を定義する必要があります。もちろん、必要なことを行う汎用関数を定義できます。
function y = nth_return(n,fun,varargin)
[vals{1:n}] = fun(varargin{:});
y = vals{n};
そして、次のように呼び出します。
cellfun(@(x) nth_return(2,@max,x), my_data)
ただし、このような関数を追加すると、コード スニペットの移植性が低下し、理解しにくくなります。nth_return
カスタム関数に依存せずに同じ結果を達成するための慣用句はありますか?