Effacer les filtres
Effacer les filtres

Delete specific rows in a multidimensional matrix

3 vues (au cours des 30 derniers jours)
David Ponce
David Ponce le 23 Oct 2018
Modifié(e) : James Tursa le 24 Oct 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.
  1 commentaire
David Ponce
David Ponce le 23 Oct 2018
same error, but thanks for the answer.

Connectez-vous pour commenter.

Réponses (1)

gonzalo Mier
gonzalo Mier le 24 Oct 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 commentaire
David Ponce
David Ponce le 24 Oct 2018
Modifié(e) : David Ponce le 24 Oct 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by