当处理多个数组时,茱莉亚广播为什么不起作用?

时间:2019-11-08 18:44:21

标签: julia

我已经定义了两个结构和一个像这样的函数

@BeforeEach

但是f返回此错误:

  

DimensionMismatch(“无法将数组以相同大小广播”)

如何解决此错误?我希望有6个元素的数组作为函数输出。

2 个答案:

答案 0 :(得分:5)

问题在于您的第一个参数是2元素<style> { main-container margin-top: -500px } </style> ,第二个参数是3元素Vector

例如将第一个参数设为1x2 Vector,然后一切正常:

Matrix

(请注意,缺少的尺寸或1长度尺寸会自动广播)

请注意,您还可以广播对julia> f.([A(0.1) A(0.2)], [B(1.), B(2.), B(3.)]) 3×2 Array{Float64,2}: 0.0841471 0.168294 0.0909297 0.181859 0.014112 0.028224 A构造函数的调用:

B

答案 1 :(得分:1)

数组必须具有兼容的尺寸-大小和形状都相同(局部操作),或者它们跨越更大的向量空间,每个矢量空间具有单调尺寸,而其他矢量具有非单尺寸,例如作为对尺寸的操作,。*运算符将导致映射

(1 x 1 x n) .* (p x q x 1)  => p x q x n