【发布时间】:2021-05-22 14:30:26
【问题描述】:
X_norm = X;
mu = zeros(1, size(X, 2));
sigma = zeros(1, size(X, 2));
for i = 1:2
mu(1,i) = mean(X,(:,i));
sigma(1,i) = std(X,0,(:,i));
col_mu = ones(size(X,1), 1) * mu(:,i)
X_norm(:,i) = X(:,i) - col_mu
X_norm(:,i) = X(:,i) * (1/sigma(1,i))
end
end
我正在尝试将特征归一化作为斯坦福 Coursera ML 课程的一部分。当我运行它时,我收到一条错误消息“无效使用运算符”,第 13 行第 23 列。
那个说 (mu(1,i) = mean...
我试图让 mu 的第 i 列成为 X 的第 i 列的平均值。我做错了什么?
【问题讨论】:
-
X 和 (:, i) 之间有一个逗号。
-
mean(X,(:,i));和std(X,0,(:,i));语法错误。你可能想要mean(X(:,i));和std(X(:,i), 0);。这是Matlab。您应该避免循环并使用矩阵代数。 -
如果 X 的每一列都必须仅使用其自己的值而不是其他列的值进行标准化,我该如何避免循环
标签: matlab machine-learning matrix matrix-multiplication