Vectorization 使用行向量更新矩阵中的值

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

我有一个矩阵和一个行向量,由:

现在我想要一个矢量化的解决方案,它通过将值除以正确的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.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