2013-02-24 90 views
1

我想改善的代码逻辑索引,而不是找到

LaserS_P=rand(20,3); % duumy data 
LaserS_P(1:4:end,1)=0; 
index_= find(LaserS_P(:,1)); % finds o element in first row of 20*3 matrix. 
LaserS_P_new=LaserS_P(index_,:); % remove all rows (index_) from matrix 

如何使用逻辑索引这种情况。

回答

5

要删除所有零值的行(这是你的例子并不什么),你可以使用逻辑索引如下:

LaserS_P=rand(20,3); % dummy data 
LaserS_P(1:4:end,1)=0; 
index_= (LaserS_P(:,1) == 0); %# finds 0 element in first col of 20*3 matrix. 
%# index_ is a logical vector with ones wherever LaserS_P's first col is 0 
LaserS_P_new=LaserS_P(~index_,:); %# remove all rows (index_) from matrix 

%# alternatively 
LaserS_P_new(index_,:) = []; %# remove all rows (index_) from matrix 
相关问题