How to extract data from 3D table with indices
이전 댓글 표시
Hello,
I have some troubles working with 3D tables. In fact, i have a 3D matrix MT (N, 19, 3) and i‘m looking for indices for which [u v]=find (MT(:,16,:)==2) [u v]= 155 1 156 1 157 1 158 1 159 1 160 1 161 1 102 2 103 2 104 2 105 2 106 2 107 2 108 2 109 2 50 3 51 3 52 3 53 3 54 3 55 3 56 3 57 3
Once I get the indices, I want to extract datas form MT (:, 3, :) corresponding to these indices and store these datas that way 1 2 3 Data(155,3,1) Data(102,3,2) Data(50,3,3) Data(156,3,1) Data(103,3,2) Data(51,3,3) Data(158,3,1) Data(104,3,2) Data(52,3,3) Data(159,3,1) Data(105,3,2) Data(53,3,3) Data(160,3,1) Data(106,3,2) Data(54,3,3) Data(161,3,1) Data(107,3,2) Data(55,3,3) Data(108,3,2) Data(56,3,3) Data(109,3,2) Data(57,3,3)
Is there any way to this correctly please? Many thanks for considering my request,
PS: It's easiest to read on the attached file
댓글 수: 5
dpb
2014년 4월 4일
Can't read your request, sorry...format the code/data values such that it can be interpreted.
As a general comment, NB: that for >2D arrays find returns a linear index in the trailing dimensions for the second argument. To find the corresponding plane from that index of your find means you need to recast it to the size of the array via ind2sub
F Z
2014년 4월 6일
Image Analyst
2014년 4월 6일
When you say MT (:, 3, :) you're looking at column 3. Let's say that columns are x. So you're basically looking at the Y-Z plane slicing through the volume at an x of 3.
You may find things that are in any Z plane, not just plane 3.
Plus you'll get a N by 1 by 3 array , not a 2D array so you may want to look into squeeze() in case you need it.
F Z
2014년 4월 6일
Jan
2014년 4월 6일
@Fatzo: Please use the possibility to format your question properly. Making it harder to read the question is a bad idea.
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Process Point Clouds에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!