关于Julia中矢量/矢量的行为
发布时间:2020-12-15 08:27:11 所属栏目:Java 来源:网络整理
导读:3 / [2; 2]给出 1×2 LinearAlgebra.Transpose{Float64,Array{Float64,1}}: 0.75 0.75 而3./ [2; 2]给出了 2-element Array{Float64,1}: 1.5 1.5 第二个很容易理解.它广播3并执行元素明智的划分.但是,第一次操作的行为背后的原因是什么呢?我假设它采用矢量
3 / [2; 2]给出
1×2 LinearAlgebra.Transpose{Float64,Array{Float64,1}}: 0.75 0.75 而3./ [2; 2]给出了 2-element Array{Float64,1}: 1.5 1.5 第二个很容易理解.它广播3并执行元素明智的划分.但是,第一次操作的行为背后的原因是什么呢?我假设它采用矢量的总和,即2×1,执行3×4的除法,并将其广播到1×2转置矢量.我可以接受将矢量的总和进行除法,但为什么要进行转置?或者为什么不返回一个标量? 解决方法
它只是给出右侧操作数的伪逆.
julia> ?/ ... Right division operator: multiplication of x by the inverse of y on the right. 虽然一见钟情似乎令人惊讶,但它实际上是自然行为. rowvector * columnvector给出一个标量,因此标量除以列向量应该给出一个行向量,就是这种情况.请注意,RowVector已在1.0中删除,您获得的实际上是Transpose表示的行向量. 您可以编写@less 1 / [2; 2]来查看实际发生的情况. 另外请看一下this GitHub issue以了解一些用例的行为和this discourse topic. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |