Get the max value and the indices of max value across a series of matrices
1 view (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
Andrei Bobrov
on 20 Aug 2018
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
More Answers (1)
Julie
on 20 Aug 2018
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.
0 Comments
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!