Delete specific rows in a multidimensional matrix

1 Ansicht (letzte 30 Tage)
David Ponce
David Ponce am 23 Okt. 2018
Bearbeitet: James Tursa am 24 Okt. 2018
Hello, I have a problem with deleting rows in my multidimensional matrix. The thing is that I have a matrix A 800X1X100 with angles and i have to delete the rows that meet the condition. Here is my code:
for k=1:1:100
if(or(Z(k,1,:)>=230,Z(k,1,:)<=330))
Z(k,1,:) = [];
end
end
here is the error: A null assignment can have only one non-colon index.
Thank you.

Antworten (1)

gonzalo Mier
gonzalo Mier am 24 Okt. 2018
The solution for your problem could be:
Z=rand(800,1,100)*400;
for(k=800:-1:1)
if(or(Z(k,1,:)>=230,Z(k,1,:)<=330))
Z((k-1)*100+(1:100)) = [];
Z = reshape(Z,[],1,100)
end
end
or use the squeeze function to make Z shape [800,100]
  1 Kommentar
David Ponce
David Ponce am 24 Okt. 2018
Bearbeitet: David Ponce am 24 Okt. 2018
Thanks for the answer, but now I know the problem, the thing is that I have to reshape my multidimensional matrix as I go deleting the rows. I have this:
for m=1:1:size(Z,3)
for n=1:1:size(Z,1)
if(and(Z(n,1,m)>=230 , Z(n,1,m)<=330))
Z(n,1,m) = []; %here is the problem i have to reshape
end
end
end

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by