deleting a full colum using

I have a matrix with several optionprice data. Now I am trying to delete rows based on a for loop and if criteria. if the value of column 8 is >1.1 or <0.9, the whole row should be deletet. I have used the following code, but I always get an error message:
for i=1:numel(matrix)
if(matrix(i,8)>1.1)
matrix(i,:) = [];
end
end
why does that no work and what ways are there to delete those rows? the matrix is a double matrix

댓글 수: 1

Jan
Jan 2013년 3월 17일
Please post the error message whenever you explain, that there is an error.

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

 채택된 답변

Jan
Jan 2013년 3월 17일
편집: Jan 2013년 3월 17일

0 개 추천

numel(matrix) is the number of all elements. When you have deleted some rows already, the matrix has less elements and matrix(i,8) might be not existing anymore already.
You do not need a loop, to solve this problem:
matrix(matrix(:, 8) > 1.1, :) = []

추가 답변 (1개)

Locks
Locks 2013년 3월 17일

0 개 추천

thanks!

댓글 수: 2

Sven
Sven 2013년 3월 17일
편집: Sven 2013년 3월 17일
Sven, you're giving me a bad name... please hit the "Accept Answer" button when an answer solves your problem.
(but feel free to say thanks in a comment (like this one) rather than making a new answer)
Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 17일
Sven, if the answer helped, click on accept this answer. Also, to add a comment, click on comment on this answer just under the answer.

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

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2013년 3월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by