如果我有以下单元格:
a = cell(5,1);
a{1} = [1 3 1 0];
a{2} = [3 1 3 3];
a{3} = [3 2 3 2];
a{4} = [3 3 3 2];
a{5} = [3 2 3 3];
键入max(cell2mat(a))
会ans = 3 3 3 3
但这没有意义,因为3 3 3 3
甚至不存在于那个细胞结构中!到底是怎么回事 ?以及如何找到细胞结构的最大组合?
note :我指的是3 3 3 2
或3 2 3 3
中的最大组合 - 因为它们都具有值3
(最大值)3 / 4列a{4}
和a{5}
。
答案 0 :(得分:2)
我相信你想要以下内容:
[~, maxInd] = max(sum(cell2mat(a), 2));
a{maxInd}
ans =
3 3 3 2
如果您希望所有行的总值与具有最大值的行相同,那么您可以执行以下操作:
% Take the sum along the rows of a
summedMat = sum(cell2mat(a), 2);
% Find the value from the summed rows that is the highest
maxVal = max(summedMat);
% Find any other rows that also have this total
maxInd = summedMat == maxVal;
% Get them rows!
a{maxInd}
ans =
3 3 3 2
ans =
3 2 3 3
答案 1 :(得分:0)
max(A)给出A中每列的最大值。
所以,如果
A = cell2mat(a)
A =
1 3 1 0
3 1 3 3
3 2 3 2
3 3 3 2
max(A)
是一个包含A的每列中最大元素的向量。