restricting vector using if else loop. How to get rid of false values from the matrix
1 回表示 (過去 30 日間)
古いコメントを表示
Hi suppose I have a 100x3 matrix representing coordinates in xyz plane. I use an if loop to select particles with a certain x value and y value and create a new matrix.
Eg:
for i=1:length(matrix)
if matrix(i,1)>100 & matrix(i,1)<400 & matrix(i,2)>100 & matrix(i,2)<400
matrix_new(i,1)=matrix(i,1);
matrix_new(i,2)=matrix(i,2);
matrix_new(i,3)=matrix(i,3);
end
end
The new matrix I get has zeros for the conditions that are false. How can I modify this condition so that I get a matrix without zeros.
Thanks
0 件のコメント
採用された回答
Walter Roberson
2017 年 8 月 30 日
mask = matrix(:,1)>100 & matrix(:,1)<400 & matrix(:,2)>100 & matrix(:,2)<400;
new_matrix = matrix(mask, :);
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!