如何返回包含给定列的最大值元素的单元格的索引

时间:2016-12-13 14:08:56

标签: matlab cell-array

假设我们有Q个单元格,每个单元格都有一个N x M数组。其中Array{q}(n,m)n个单元格的m列的q行中的元素。

我想找到每个列中包含最大值元素的索引

有人可以建议一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

我会将您的单元格数组连接成3D矩阵,然后使用max查找每列的最大值,然后使用max再次找到第三列的最大值维度并使用max的第二个输出来指示它属于哪个单元格

% Convert data into 3D array
condensed = cat(3, Q{:});

% Find the location in the maximum
[~, ind] = max(max(condensed, [], 1), [], 3);

作为一个例子:

Q = {[2 1; 
      4 0], ...

     [1 2; 
      3 1]};

[~, ind] = max(max(cat(3, Q{:}), [], 1), [], 3);
%   1   2