逻辑索引而不是查找(logical indexing instead of find)

编程入门 行业动态 更新时间:2024-10-26 04:31:00
逻辑索引而不是查找(logical indexing instead of find)

我想改进一段代码

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

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

I want to improve piece of code

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

How can i use logical indexing for this case.

最满意答案

要删除所有零值行(这不是您的示例所做的),您可以使用逻辑索引,如下所示:

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

To remove all the zero-valued rows (which is not what your example does), you can use logical indexing as follows:

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

更多推荐

本文发布于:2023-08-04 02:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1408875.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:而不是   索引   逻辑   find   indexing

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!