【问题标题】:Matlab Matrix Vector multiplicationMatlab矩阵向量乘法
【发布时间】:2019-10-25 06:59:07
【问题描述】:

我是 Matlab 的新手,有一个简单的问题(对我来说不是那么简单):

我有一个矩阵 x:

x = 1 2 3 
    4 5 6 
    7 8 9
    10 11 12

还有一个向量 y:

y = 1 2 3

现在我想将数字 1 到 4 与 Vector 的第一个元素相乘,将数字 5 到 8 与第二个元素相乘,将 9 到 12 与最后一个元素相乘。

找不到解决方案。非常感谢任何帮助!

谢谢保罗

【问题讨论】:

    标签: matlab matrix multiplication


    【解决方案1】:

    如果您修改输入 x 以将所有“组”设置为新输入的列,例如 xx,例如通过transposingreshaping x 相应地,您可以使用(元素方面)multiplication。 MATLAB 的implicit expansion 允许这样的(逐元素)矩阵运算。 (在 MATLAB R2016b 之前,需要bsxfun。)

    这将是我的解决方案:

    % Inputs
    x = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
    y = [1 2 3]
    
    % Transpose and reshape x to set up all "groups" as new columns
    xx = reshape(x.', 4, 3)
    
    % (Element-wise) Multiplication using implicit expansion
    z = xx .* y
    

    输出:

    x =
        1    2    3
        4    5    6
        7    8    9
       10   11   12
    
    y =
       1   2   3
    
    xx =
        1    5    9
        2    6   10
        3    7   11
        4    8   12
    
    z =
        1   10   27
        2   12   30
        3   14   33
        4   16   36
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 2018-03-24
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多