Find Maximum Values of a 3 Dimensional Matrix
75 次查看(过去 30 天)
显示 更早的评论
I need to find each maximum values (position/indexing of values) of each layer on a 3 dimensional matrix.
It was given for a two dimensional matrix.
example:
--------------------
A = [8 2 4; 7 3 9];
[M,I] = max(A(:));
[I_row, I_col] = ind2sub(size(A),I)
---------------------
Here I_row and I_col is could be found. But I need a 3 dimensional matrix's maximum indexing of each layers.
Example:
---------------------
F(:,:,1)=[8 2 4; 7 3 9];
F(:,:,2)=[7 2 1; 0 5 1];
---------------------
I need position of 9 for the 1'st layer (which is (2,3)), and also position of the 7 for the 2'nd layer (which is (2,1)).
That layers are going up to 150 or more. (F(:,:,150))
So, how can I find each of the maxsimum of the matrix?
Thanks in advance.
0 个评论
采纳的回答
Thorsten
2015-11-18
Reshape the pages of F into separate columns, determine the max for each column and use ind2sub to convert linear indices to subscripts:
[s1 s2 s3] = size(F);
[maxval, ind] = max(reshape(F(:), s1*s2, []));
[i j] = ind2sub([s1 s2], ind);
X = [maxval' i' j'];
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!