我遇到了一个似乎无法通过矢量化实现的操作。
假设我想找到由定义的应用程序的矩阵
h: X -> 交叉(V,X)
其中 V 是预定向量(X 和 V 都是 3×1 向量)。
在 Matlab 中,我会做类似的事情
M= cross(repmat(V,1,3),eye(3,3))
得到这个矩阵。例如,V=[1;2;3] 产生
M =
0 -3 2
3 0 -1
-2 1 0
现在假设我有一个 3×N 矩阵
V=[V_1,V_2...V_N]
每一列都定义了自己的叉积运算。对于 N=2,这是一个天真的尝试找到 V 的列定义的两个叉积矩阵
V=[1,2,3;4,5,6]'
M=cross(repmat(V,1,3),repmat(eye(3,3),1,2))
结果是
V =
1 4
2 5
3 6
M =
0 -6 2 0 -3 5
3 0 -1 6 0 -4
-2 4 0 -5 1 0
在我期待的时候
M =
0 -3 2 0 -6 5
3 0 -1 6 0 -4
-2 1 0 -5 4 0
2列倒置。
有没有办法在没有 for 循环的情况下实现这一目标?
谢谢!