【问题标题】:Element wise multiplication of a matrix and a vector?矩阵和向量的元素乘法?
【发布时间】:2011-12-13 02:26:52
【问题描述】:

在 octave 中是否有一个内置函数可以将 m X n 的每一列元素与大小为 m 的列向量相乘,这比使用循环更有效?

【问题讨论】:

    标签: vector matrix octave


    【解决方案1】:

    您也可以根据需要多次复制向量,将其转换为m x n 矩阵,然后使用内置的逐元素乘法运算符.*:

    >> A = [1 2; 3 4; 5 6];
    >> B = [1; 2; 3];
    
    >> A .* repmat(B, 1, columns(A))
    ans = 
    
        1    2
        6    8
       15   18
    

    【讨论】:

    • 我相信 Octave 现在会自动执行此操作(他们称之为“广播”)。默认情况下,您会收到警告。
    【解决方案2】:

    我没有尝试过 Anna Lear 的答案,但正如 nobar 在该答案中评论的那样,Octave 现在进行广播。所以你只需要做 A.*B。您将收到一条警告,提示您正在应用自动产品广播

    >> A.*B
    warning: product: automatic broadcasting operation applied
    ans =
    
     1    2
     6    8
    15   18
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2019-04-21
      • 2021-08-24
      相关资源
      最近更新 更多