フィルターのクリア

Get the max value and the indices of max value across a series of matrices

1 回表示 (過去 30 日間)
Anwar S
Anwar S 2018 年 8 月 20 日
コメント済み: Anwar S 2018 年 8 月 20 日
I have a 25x50 matrix each having another 128x128 matrix in each cell. Now I want to create a 25x1 matrix that will have a 128x128 matrix in each cell containing the maximum value across those eleven 128x128 matrices in each row. I also need the index of that cell from which the maximum value came from.

採用された回答

Andrei Bobrov
Andrei Bobrov 2018 年 8 月 20 日
Let A - your cell array (25 x 50) with double matrix 128 x 128.
n = size(A,1);
maxvalue = cell(n,1);
maxidx = cell(n,1);
for ii = 1:n
[maxvalue{ii},maxidx{ii}] = max(cat(3,A{ii,:}),[],3);
end

その他の回答 (1 件)

Julie
Julie 2018 年 8 月 20 日
BigMat=cellfun(@(x) cat(3,DATA{:,x}),num2cell(1:25),'UniformOutput',false)
[maxVal idx] = cellfun(@(x) max([BigMat{x}],[],3),num2cell(1:25),'UniformOutput',false)
BigMat is all of the columns concatenated into 3D matrices (use DATA{x,:} for rows instead). Then the value and indices are found using max.

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by