【发布时间】:2013-05-03 21:24:49
【问题描述】:
我是 Octave 的新手,我正在尝试做一些基本的矩阵运算。我将举一个简单的例子来说明我正在尝试做的事情(实际数据集要大得多)。
a = [1 2; 2 4]
mu = mean(a)
normalized = a - mu %error line
所以在我的示例中,mu 值是 1.5 和 6。我想得到一个矩阵,它从第一列减去 1.5,从第二列减去 3。
如:
-.5 -1 .5 1
非常感谢。
【问题讨论】:
我是 Octave 的新手,我正在尝试做一些基本的矩阵运算。我将举一个简单的例子来说明我正在尝试做的事情(实际数据集要大得多)。
a = [1 2; 2 4]
mu = mean(a)
normalized = a - mu %error line
所以在我的示例中,mu 值是 1.5 和 6。我想得到一个矩阵,它从第一列减去 1.5,从第二列减去 3。
如:
-.5 -1 .5 1
非常感谢。
【问题讨论】:
在 Maltab 中(它也适用于 Octave),您可以使用 binary singelton expansion:
bsxfun(@minus, a, mu)
但是,我的理解是 Octave 会自动为您执行 broadcasting,因此您在尝试从 2x2... 中减去 1x2 矩阵时不会出错:/
【讨论】:
normalized = a - repmat(mu, size(a,1), 1)
【讨论】:
normalized = [a(:,1) - mu(1), a(:,2) - mu(2)];
【讨论】: