how to extract rows and leave zeros behind?
3 次查看(过去 30 天)
显示 更早的评论
Dear All, I have a big matrix called A, I extract another matrix from this A and call it B based on a condition of the value x in the matrix A, I wrote this code but it doesnt work well, can any body please help fix it? I need to extract the new matrix B and leave the rows as zeros in the original matrix A.
B= A(x(:,1)>9.84 & x(:,1)<12.47 , :);
A(find(A(B,:)))=0;
0 个评论
采纳的回答
Walter Roberson
2017-11-11
B= A(x(:,1)>9.84 & x(:,1)<12.47 , :);
leaves B as a subset of A, having selected some of the rows but retaining all columns.
A(B,:)
then uses that subset as an index into A. That is mostly going to fail as the entries are probably not zero.
Try
mask = x(:,1)>9.84 & x(:,1)<12.47;
B = A(mask, :);
A(mask, :) = 0;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!