# how to return indices?

6 views (last 30 days)
Lilya on 12 Jun 2022
Commented: Lilya on 12 Jun 2022
Hi,
I have a 3 dimensional data matrix (72*45*2109), and I need to extract all data less than 15. the final output should be a 3d matrix
I used the following lines, but the result is a vector. The point is to return the indices to have 3d matrix.
Any help would be greatly appreciated.
[r,c,v] = ind2sub(size(data),find(data >= 15));
l = data(sub2ind(size(data),r,c,v));
##### 2 CommentsShowHide 1 older comment
Lilya on 12 Jun 2022
I've created an output nan matrix with the same dimension (72*45*2109), but all the output (r,c,v) are vectros as well
I don't know how to put them back in the output matrix

Dyuman Joshi on 12 Jun 2022
%random data
y=randi(30,2,3,4)
y =
y(:,:,1) = 7 17 10 24 11 14 y(:,:,2) = 3 2 6 13 17 1 y(:,:,3) = 26 3 14 26 27 3 y(:,:,4) = 7 5 4 3 7 26
z=NaN(2,3,4);
z(y<15)=y(y<15)
z =
z(:,:,1) = 7 NaN 10 NaN 11 14 z(:,:,2) = 3 2 6 13 NaN 1 z(:,:,3) = NaN 3 14 NaN NaN 3 z(:,:,4) = 7 5 4 3 7 NaN
Lilya on 12 Jun 2022
Thank you very much!!
perfectly worked.