2013-02-24 57 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