我想使以下广播表达式起作用:
J = rand(4,4)
fx1 = rand(2,2)
fx2 = rand(2,2)
@. J[:,1] = fx1 + fx2
我真的想要某种:
@. J[:,1] = vec(fx1 + fx2)
这个
vec
表示应该重塑为4x1,但我不想进行此分配。一般如何处理(即在fx上没有索引)? 最佳答案
另一种可能性是,代替vec
设置fx1
和fx2
重塑J
的切片:
Jcol = reshape(view(J,:,1),(2,2))
@. Jcol = fx1 + fx2
不确定效率,但是根据周围的算法,它可能会提供更清晰的视角。 LLVM代码似乎足够短,并且赋值语句很清楚。
关于arrays - 重塑广播的表情,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47345634/