Julia 中的叉积

Jus*_*ing 4 arrays linear-algebra julia

考虑Matrix

A = [1., 2., 3.; 4., 5., 6]
Run Code Online (Sandbox Code Playgroud)

Vector

v = [0.1, 0.2, 0.4]
Run Code Online (Sandbox Code Playgroud)

Matrix获取行数为 的新行的最有效的“Julianic”方法是什么[cross(A[1, :], v); cross([2, :], v)]?上面数字的结果应该是[0.2, -0.1, 0.; 0.8, -0.1, 0.3]

如何概括 A 中的 N 行?

ja7*_*a72 5

尝试使用叉积运算符矩阵

cross_op(v) = [0.0 -v[3] v[2]; v[3] 0.0 -v[1]; -v[2] v[1] 0.0];
Run Code Online (Sandbox Code Playgroud)

然后将其用作

w = A*cross_op(v)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的答案。事实上,尽管其他答案中很多关于效率的讨论,但在矩阵具有许多行的情况下,由于矩阵乘法优化,这可能是比其他技巧更快的解决方案。 (2认同)