【问题标题】:Trivial linear algebra issue (octave/matlab)微不足道的线性代数问题(八度/ matlab)
【发布时间】:2012-06-21 05:52:27
【问题描述】:

假设我有一个权重矩阵和另一个数据值矩阵。我是否可以将一个矩阵乘以或除以另一个矩阵,以便一个矩阵中的每个元素仅乘以/除以另一个矩阵中的相应元素,而不必遍历每个位置?

我觉得问这个问题很可笑,但我似乎无法通过谷歌找到答案。

【问题讨论】:

    标签: matlab octave linear-algebra


    【解决方案1】:

    a .* b 将矩阵逐点相乘。

    a ./ b 划分。

    像这样:

    octave:1> a = [1 2; 3 4];
    octave:2> b = [3 4; 5 6];
    octave:3> a .* b
    ans =
    
        3    8
       15   24
    
    octave:4> a ./ b
    ans =
    
       0.33333   0.50000
       0.60000   0.66667
    

    对于任意二进制函数,使用bsxfun:

    in octave

    in matlab

    【讨论】:

    • 嘿,我还有一个问题:假设我想将矩阵的每一列乘以向量中的相应标量?就像在您的示例中,我只想将 a 的第一列乘以 b_11,将第二列乘以 b_12
    • 它称为矩阵点乘法。先谷歌一下。
    • @mavix: bsxun(@times, a, b) 用于乘法(替换为@rdivide 用于除法)
    【解决方案2】:

    A = [1 2 3]; B = [ 1 1 1; 2 2 2; 3 3 3];

    C = repmat(A', 1,3) 答案 = C *。乙

    【讨论】:

      【解决方案3】:

      您想使用元素乘法或除法。要使用元素乘法(与矩阵乘法相反),请在前面放置一个句点:

      A .* B
      

      这里有一个关于 Octave 线性代数的教程(更深入一点):http://www.lauradhamilton.com/tutorial-linear-algebra-with-octave

      【讨论】:

        猜你喜欢
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        • 2015-04-20
        • 2021-01-03
        • 1970-01-01
        • 1970-01-01
        • 2021-06-28
        • 1970-01-01
        相关资源
        最近更新 更多