MATLAB Answers

Delete specific rows in a multidimensional matrix

조회 수: 2(최근 30일)
David Ponce
David Ponce 23 Oct 2018
편집: James Tursa 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

David Ponce
David Ponce 23 Oct 2018
same error, but thanks for the answer.

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

답변(1개)

gonzalo Mier
gonzalo Mier 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

David Ponce
David Ponce 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

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


Translated by