Sort 3D matrix depending on specific column
Ältere Kommentare anzeigen
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 Kommentare
Azzi Abdelmalek
am 14 Mai 2016
After deleting some rows, your slices will get different sizes, have you thought about that?
Ali Kareem
am 14 Mai 2016
Bearbeitet: Ali Kareem
am 14 Mai 2016
Antworten (1)
Azzi Abdelmalek
am 14 Mai 2016
%-----------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
Kategorien
Mehr zu Elementary Math finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!