【问题标题】:Find function in Julia 1.0.2在 Julia 1.0.2 中查找函数
【发布时间】:2018-11-13 15:08:46
【问题描述】:

我正在过渡到 Julia 1.0.2,我意识到 find 函数没有定义。在以前的版本(Julia 0.6)中,我可以写

find(x -> x<0, my_var)

为了得到名为my_var的数组的负数。当我在 Julia 1.0.2 中运行相同的代码时,出现以下错误:

UndefVarError: find not defined

我找不到 find 函数是用不同的名称实现的,还是它已被删除。 Julia 1.0.2 中是否有任何与之前 Julia 版本中的 find 函数等效的函数?

【问题讨论】:

  • 非常强烈的建议:通过 v0.7 过渡。在这种情况下,v0.7 会给您一个弃用警告,告诉您使用findall 而不是find。请注意,v0.7 与 v1.0 完全相同,但对数千个类似这样的小问题有弃用警告。

标签: julia


【解决方案1】:

使用filter():

julia> filter(x -> x<0, -5:5)
5-element Array{Int64,1}:
 -5
 -4
 -3
 -2
 -1

另一种选择是使用findall() 来获取元素的索引:

julia> indices = findall(x -> x<0, -5:5)
5-element Array{Int64,1}:
 1
 2
 3
 4
 5

您可以使用getindex() 获取实际值,例如:

julia> getindex(-5:5,indices)
5-element Array{Int64,1}:
 -5
 -4
 -3
 -2
 -1

【讨论】:

  • 最后一个例子也可以简单写成(-5:5)[indices]getindex(-5:5, indices),因为这里不需要广播。
  • 谢谢,这正是我想要的
猜你喜欢
  • 2021-05-31
  • 2020-02-09
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多