필터 지우기
필터 지우기

How to delete elements from vector in for loop?

조회 수: 15 (최근 30일)
Murat Yetkin
Murat Yetkin 2017년 9월 8일
댓글: Image Analyst 2017년 9월 8일
I have an A vector and I want to remove values less than the 0.1*max(A). Also I want to remove same rows in a B vector with respect to A:
size(B)= 801 1 size(A)=801 1
The error that I got is:
'A null assignment can have only one non-colon index.'
for p=length(A):-1:1
if A(p,1)<max(A)*0.1
A(p,1)=[]; B(p,1)=[];
end
end

채택된 답변

Image Analyst
Image Analyst 2017년 9월 8일
Try this:
rowsToDelete = 0.1*max(A);
A(rowsToDelete) = [];
B(rowsToDelete) = [];
No loop needed.
The problem was that it was considering the array as a 2-D array because you included the ",1" in the indexing. And you can't delete just one element from a 2-D array because you can't have arrays with ragged edges. You have to delete a whole column or a whole row, not part of a row or column.
  댓글 수: 3
Andrei Bobrov
Andrei Bobrov 2017년 9월 8일
편집: Andrei Bobrov 2017년 9월 8일
rowsToDelete = A < 0.1*max(A);
A(rowsToDelete) = [];
B(rowsToDelete) = [];
Image Analyst
Image Analyst 2017년 9월 8일
Thanks for the correction Andrei!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 루프와 조건문에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!