2016-12-13 10 views
-1

Qのセルがあり、各セルにN x Mの配列があるとします。 Array{q}(n,m)q番目のセルのm番目の列のn番目の行の要素です。与えられた列の最も重要な要素を保持するセルのインデックスを返す方法

インデックスの各列に最大値の要素を保持するセルがあります。

誰も簡単な方法を提案できますか?

+0

は、あなたが入力と期待される出力の小さな例を提供することができます:それは

% Convert data into 3D array condensed = cat(3, Q{:}); % Find the location in the maximum [~, ind] = max(max(condensed, [], 1), [], 3); 

し、一例として、所属するセルを示すために? – Suever

+0

あなたの出力をどのようにフォーマットしたいですか?私は、各セルが最大値を持つ行のインデックスを表すビットベクトルを保持する長さQの配列を持ちたいと思っていますか? – AndyW

答えて

1

Iは、3Dマトリックスにあなたのセル配列を連結し、各列の最大値を見つけて再度次元に沿った最大値を見つけるためにmaxを使用しmaxの第二の出力を使用するようにmaxを使用します

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

    [1 2; 
     3 1]}; 

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

天才、ありがとう。ここで私は結局何をしたのですか? 'condensed_cells = cat(3、cells {:}); [〜、インデックス] = max(max(condensed_cells、[]、1)、[]、3); Z = []; for ix = 1:col Z(:、ix)=セル{Index(1、ix)}(:、ix); end'完璧に動作します。 –

関連する問題