首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用具有多个条件的findall

使用具有多个条件的findall
EN

Stack Overflow用户
提问于 2019-05-07 17:57:07
回答 1查看 267关注 0票数 0

下面的代码在p的第50列中查找其值等于1的索引。

代码语言:javascript
复制
findall(p[:,50].== 1)

但假设我对筛选多个标准感兴趣。例如,如果我还对值为0.5的索引感兴趣。在这种情况下,我尝试了以下方法,但出现了一些问题:

代码语言:javascript
复制
findall(p[:,50].== 1 | p[:,50].== 0.5)
EN

Stack Overflow用户

发布于 2019-05-07 18:19:33

您忘记给|操作符加上点了。但是你也需要使用括号:

代码语言:javascript
复制
findall((p[:,50].== 1) .| (p[:,50].== 0.5))

但是,这仍然有点浪费,因为您正在制作同一列的两个副本,并且分配了五个不需要的中间向量。您应该尝试使用谓词函数来避免这种情况,例如:

代码语言:javascript
复制
findall(x->x in (0.5, 1.0), p[:,50])

代码语言:javascript
复制
findall(x->x==0.5||x==1, p[:,50])

最重要的是,您可以使用view来避免由于p[:,50]而进行的分配

代码语言:javascript
复制
findall(x->x==0.5||x==1, view(p, :,50))
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56020012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档