Getting dimension indexes based on element index

16 views (last 30 days)
Hi,
I have a 5D matrix, I found the minimum value and minimum index along the whole elements.
How can I know this minimum belongs to which row, which column, which page. I mean for example if the minimum index is 1108.
How can I know at which row, column and pages, this elmentes locates?
Thanks.

Accepted Answer

Karim
Karim on 30 Aug 2022
You can use the ind2sub function for this (link --> Convert linear indices to subscripts - MATLAB ind2sub (mathworks.com) )
See below for an example
% random 5D matrix
M = rand(10,10,10,10,10);
% find the minium and its index
[min,idx] = min(M,[],'all')
min = 5.4030e-06
idx = 55455
% convert to subscripts
[I1,I2,I3,I4,I5] = ind2sub(size(M),idx)
I1 = 5
I2 = 6
I3 = 5
I4 = 6
I5 = 6

More Answers (1)

Chunru
Chunru on 30 Aug 2022
a = randn(2,3,4,5,6);
[amin, i]=min(a(:))
amin = -2.6982
i = 618
[i1, i2, i3, i4, i5] = ind2sub([2,3,4,5,6], i)
i1 = 2
i2 = 3
i3 = 3
i4 = 1
i5 = 6

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!