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 ExchangeMatrix 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