julia - 将 Julia ifelse 与数组一起使用
问题描述
我正在使用 Julia 1.0.3,并且正在尝试运行用 Julia 0.7 编写的一行代码。此行沿布尔值数组运行基本 ifelse 函数。似乎在这个版本的 Julia 中,ifelse 函数不能再针对位数组运行。有没有办法让 ifelse 在这里工作?
x = collect(0:0.1:2)
x2 = ifelse(2 .- 2*x.>=0, 2 .- 2*x, 0)
我期望得到一个数组,对于 x>=0 和 0 的所有值显示 2-2x,否则为 0。我收到以下错误。
TypeError: non-boolean (BitArray{1}) used in boolean context
Stacktrace:
[1] top-level scope at In[67]:1
解决方案
只需在广播.
后加一个点。ifelse
许多对集合元素进行操作的函数需要在 Julia 1.x 上使用点语法进行广播。
x = collect(0:0.1:2)
x2 = ifelse.(2 .- 2*x.>=0, 2 .- 2*x, 0.)
推荐阅读
- c# - 拥有 IMethodSymbol 是否可以在 Roslyn 中找出该方法中使用/调用的所有方法和字段?
- ios - 以 CGRect 绘制的圆形图像具有白色背景
- django - 带有 jinja2 FormHelper 支持的 django-crispy-forms
- pandas - 使用 pandas 追加一个 .xslx 文件是不是覆盖了它?
- java - Java 检查函数是否已被调用
- github - 发布时的 Github Action 触发器在标签上不起作用
- typescript - 构造一个新的可配置类
- c++ - 无法在地图中打印地图中的矢量值
- python - 在 dag 中增加或减少 ts_nodash 秒数
- javascript - JavaScript 中的 find() 与 map()