在八度或matlab中矢量化列式操作

时间:2014-07-06 23:01:14

标签: matlab octave vectorization

如何对以下代码进行矢量化?它基本上是计算每列的平均值。

mu(1) = sum(X(:,1))/C
mu(2) = sum(X(:,2))/C

和这(标准化每个元素,每列具有不同的均值和标准):( X是47x2。mu,sigma都是1x2)

X_norm(:,1) = (X(:,1)-mu(1))/sigma(1)
X_norm(:,2) = (X(:,2)-mu(2))/sigma(2)

2 个答案:

答案 0 :(得分:2)

这很简单:

mu = sum(X) ./ C
默认情况下,

sum沿第一维(在列上)运行。


编辑:

问题的第二部分:

X_norm = bsxfun(@rdivide, bsxfun(@minus, X, mu), sigma)

它与执行repmat类似,但没有内存开销。

答案 1 :(得分:1)

您甚至可以使用mu = mean(X)