Sort 3D matrix depending on specific column

Hello,
I have 3D matrix (10*10*4) and I am trying to short each slice depending on the 2 column after that and depending on column 2 I want to delete all rows that have a value on column 2 less than 1 and greater than 17.
I used this code to sort but it is not working
clc;
clear;
A = rand(10,10,4)
column = 2;
[values,indices] = sort(A(:,column,:))
B = A(indices,:,:)
Thanks

댓글 수: 2

After deleting some rows, your slices will get different sizes, have you thought about that?
Ali Kareem
Ali Kareem 2016년 5월 14일
편집: Ali Kareem 2016년 5월 14일
Hello,
Thank you for your reply. No, it will the same. because this data is a grid and I checked that. but I will get new 3D matrix with new size

댓글을 달려면 로그인하십시오.

답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2016년 5월 14일

0 개 추천

%-----------Example----------
A=randi(30,10,10,4)
%--------------------------------
out=cell(1,k);
for k=1:size(A,3)
a=A(:,:,k);
b=sortrows(a,2);
c2=b(:,2);
b(c2<1 | c2>27,:)=[];
out{k}=b
end

카테고리

도움말 센터File Exchange에서 Elementary Math에 대해 자세히 알아보기

태그

질문:

2016년 5월 14일

답변:

2016년 5월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by