0

如果我有以下单元格:

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在那个细胞结构中甚至不存在!到底是怎么回事 ?以及如何找到细胞结构的最大组合?

注意:我将最大组合称为3 3 3 2或- 因为两者在和的 3/4 列中3 2 3 3都有值(最大值) 。3a{4}a{5}

4

2 回答 2

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
于 2013-03-26T17:57:22.650 回答
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 的每一列中的最大元素。

于 2013-03-26T17:52:50.760 回答