Vectorization 使用行向量更新矩阵中的值
我有一个矩阵和一个行向量,由: 现在我想要一个矢量化的解决方案,它通过将值除以正确的sigma值来更新X中的每个值。它看起来像这样:Vectorization 使用行向量更新矩阵中的值,vectorization,octave,Vectorization,Octave,我有一个矩阵和一个行向量,由: 现在我想要一个矢量化的解决方案,它通过将值除以正确的sigma值来更新X中的每个值。它看起来像这样: X(1,1)/sigma(1) X(1,2)/sigma(2) X(1,3)/sigma(3) X(2,1)/sigma(1) X(2,2)/sigma(2) X(2,3)/sigma(3) 只需扩展sigma并使用元素除法 Y = X ./ repmat (sigma, rows (X), 1) Y = 0.47140 0.94281 1.41
X(1,1)/sigma(1)
X(1,2)/sigma(2)
X(1,3)/sigma(3)
X(2,1)/sigma(1)
X(2,2)/sigma(2)
X(2,3)/sigma(3)
只需扩展sigma并使用元素除法
Y = X ./ repmat (sigma, rows (X), 1)
Y =
0.47140 0.94281 1.41421
1.88562 2.35702 2.82843
一个更优雅的解决方案是使用,它比
repmat
更快更干净。
这一主题已被广泛讨论
Y = X ./ repmat (sigma, rows (X), 1)
Y =
0.47140 0.94281 1.41421
1.88562 2.35702 2.82843
> bsxfun(@rdivide,X,sigma)
ans =
0.47140 0.94281 1.41421
1.88562 2.35702 2.82843