如何对以下代码进行矢量化?它基本上是计算每列的平均值。
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)
答案 0 :(得分:2)
这很简单:
mu = sum(X) ./ C
默认情况下, sum
沿第一维(在列上)运行。
问题的第二部分:
X_norm = bsxfun(@rdivide, bsxfun(@minus, X, mu), sigma)
它与执行repmat
类似,但没有内存开销。
答案 1 :(得分:1)
您甚至可以使用mu = mean(X)
。