我想让以下广播表达工作:
J = rand(4,4)
fx1 = rand(2,2)
fx2 = rand(2,2)
@. J[:,1] = fx1 + fx2
Run Code Online (Sandbox Code Playgroud)
我真的想要某种:
@. J[:,1] = vec(fx1 + fx2)
Run Code Online (Sandbox Code Playgroud)
这vec说它应该重塑为4x1,但我不想让这个分配.怎么能一般地处理这个问题(即没有对fx进行索引)?
另一种可能性是代替vec-ingfx1和fx2来重塑 的切片J:
Jcol = reshape(view(J,:,1),(2,2))
@. Jcol = fx1 + fx2
Run Code Online (Sandbox Code Playgroud)
不确定效率,但根据周围的算法,它可能会给出更清晰的视角。LLVM 代码看起来足够短,赋值语句也很清晰。