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/4列に値(最大)があるため、最大の組み合わせをいずれか3 3 3 2または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 に答える