在Julia中从大小为N
的矩阵中减去长度为(N, K)
的向量的最佳方法是什么?
当然,for
循环或repmat
应该有效,但它们似乎不是最有效的。
我能以某种方式使用broadcast
吗?
答案 0 :(得分:8)
julia> [1 2 3; 4 5 6; 7 8 9] .- [1; 2; 3]
3×3 Array{Int64,2}:
0 1 2
2 3 4
4 5 6
(很明显,还会广播减去水平向量)
julia> [1 2 3; 4 5 6; 7 8 9] .- [1 2 3]
3×3 Array{Int64,2}:
0 0 0
3 3 3
6 6 6
另请注意,顶部示例中的广播电话.-
基本上等同于
julia> (-).([1 2 3; 4 5 6; 7 8 9], [1; 2; 3])
3×3 Array{Int64,2}:
0 1 2
2 3 4
4 5 6
从julia 0.6开始,统一广播功能的f.(args)
语法/幕后实现与广播运营商的实现。
(即.-
不再是单独定义的运算符,恰好是-
的“广播”版本。