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
函数?