【问题标题】:How do I subtract the values of a 1x2 matrix from a 2 x 2 matrix in octave?如何从倍频程的 2 x 2 矩阵中减去 1x2 矩阵的值?
【发布时间】: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

非常感谢。

【问题讨论】:

    标签: matlab octave


    【解决方案1】:

    在 Maltab 中(它也适用于 Octave),您可以使用 binary singelton expansion

    bsxfun(@minus, a, mu)
    

    但是,我的理解是 Octave 会自动为您执行 broadcasting,因此您在尝试从 2x2... 中减去 1x2 矩阵时不会出错:/

    【讨论】:

    【解决方案2】:

    normalized = a - repmat(mu, size(a,1), 1)

    【讨论】:

    • 谢谢本。现在查看 repmat 函数。
    【解决方案3】:
    normalized  = [a(:,1) - mu(1), a(:,2) - mu(2)];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2018-08-11
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多