Matlab中mtimes函数的使用

目录

语法

说明

示例

将两个向量相乘

将两个数组相乘


        矩阵乘法

语法

C = A*B

C = mtimes(A,B)

说明

        C = A*B 是 A 和 B 的矩阵乘积。如果 A 是 m×p 矩阵,B 是 p×n 矩阵,则 C 是通过以下公式定义的 m×n 矩阵:

该定义说明 C(i,j) 是 A 第 i 行与 B 第 j 列的内积。可以使用 MATLAB® 冒号运算符来书写该定义,如下所示

C(i,j) = A(i,:)*B(:,j)

对于非标量 A 和 B,A 的列数必须等于 B 的行数。对于非标量输入,矩阵乘法不一定能互换位置。也就是说,A*B 不一定等于 B*A。至少一方输入为标量时,A*B 等于 A.*B,这时可以互换位置。

C = mtimes(A,B) 是执行 A*B 这一操作的替代方法,但很少使用。它可以启用类的运算符重载。

示例

将两个向量相乘

        创建一个 1×4 行向量 A 和一个 4×1 列向量 B。

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

A 乘以 B

C = A*B
C = 3

        结果是 1×1 标量,也称为向量 A 和 B 的点积或内积。或者,可以使用 dot(A,B) 语法来计算 A⋅B 点积。

B 乘以 A

C = B*A
C = 4×4

     1     1     0     0
     2     2     0     0
     3     3     0     0
     4     4     0     0

        结果是 4×4 矩阵,也称为向量 A 和 B 的外积。两个向量的外积 A⊗B 返回一个矩阵。

将两个数组相乘

        创建两个数组 A 和 B。

A = [1 3 5; 2 4 7];
B = [-5 8 11; 3 9 21; 4 0 8];

        计算 A 和 B 的乘积。

C = A*B

C = 2×3

    24    35   114
    30    52   162

        计算 A 第二行和 B 第三列的内积。

A(2,:)*B(:,3)

ans = 162

        结果与 C(2,3) 一样。

        操作数,指定为标量、向量或矩阵。

  • A 和 B 必须为二维数组,或者其中之一可以为标量。

  • 对于非标量输入,A 的列数必须等于 B 的行数。

  • 如果 A 或 B 中的一个是整数类(int16、uint8、…),则另一个输入必须为标量。整数数据类型的操作数不能为复数。

        乘积,以标量、向量或矩阵形式返回。数组 C 的行数与输入 A 的行数相同,列数与输入 B 的列数相同。例如,如果 A 是 m×0 空矩阵,B 是 0×n 空矩阵,那么 A*B 是 m×n 的全零矩阵。

提示

  • 使用链式矩阵乘法,例如 A*B*C,可能可以使用圆括号来指定运算顺序,从而缩短执行时间。以三个矩阵相乘 A*B*C 为例,其中 A 为 500×2,B 为 2×500,C 为 500×2。

    • 在不使用圆括号的情况下,运算顺序从左到右,因此先计算 A*B,形成 500×500 矩阵。随后将该矩阵与 C 相乘,得到 500×2 的结果。

    • 如果改为指定 A*(B*C),则首先将 B*C 相乘,生成 2×2 矩阵。然后,这个小矩阵乘以 A,同样得到 500×2 的结果,但运算量更少,中间内存使用量更少。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值