【问题标题】:julia broadcasting (equivalent of numpy newaxis)朱莉娅广播(相当于 numpy newaxis)
【发布时间】:2016-02-02 08:10:15
【问题描述】:
using Distance

 euclidean ([1:10;1:10], [1:10])
ERROR: DimensionMismatch("The lengths of a and b must match.")
 in get_common_len at /home/nbecker/.julia/v0.4/Distance/src/common.jl:11
 in sumsqdiff at /home/nbecker/.julia/v0.4/Distance/src/metrics.jl:40
 in euclidean at /home/nbecker/.julia/v0.4/Distance/src/metrics.jl:83

我将如何以节省空间和时间的方式强制在此处进行广播? 我相信 numpy 会为此使用 newaxis。

【问题讨论】:

  • 这只是距离包中缺少功能的问题——它不会自动进行广播,但可以。我建议打开一个要求添加此内容的问题。
  • 请注意,在很多情况下,您可以使用出色的内置broadcast 和broadcast! 函数。他们非常有效率。不幸的是,它们不适用于这种情况,因为它们对数组元素进行操作,而 euclidean 需要对向量进行操作。
  • 此功能是否已添加到 Distances.jl 中?

标签: julia


【解决方案1】:

为什么一定要使用广播?您可以使用repmat() 完成同样的事情:

euclidean([1:10;1:10], repmat([1:10],2))

【讨论】:

  • repmat 不分配吗?
猜你喜欢
  • 2018-11-27
  • 2014-04-26
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2014-02-04
  • 2014-12-31
  • 2017-01-15
  • 2016-02-18
相关资源
最近更新 更多