主要内容

mtimes,*

矩阵乘法

描述

例子

C=一个*B的矩阵乘积是一个B。如果一个是m- p和吗B是p × n矩阵Cm × n矩阵是由什么定义的

C ( , j ) = k = 1 p 一个 ( , k ) B ( k , j )

这个定义说C (i, j)的内积是th排一个jth列B。你可以用MATLAB编写这个定义®结肠算子为

C (i, j) =(我,:)* B (:, j)
对于nonscalar一个B的列数一个的行数必须等于B。矩阵乘法是非标量输入的普遍可交换性。也就是说,A * B通常是不等于B *。如果至少有一个输入是标量,那么A * B相当于a * B交换。

C= mtimes (一个,B)是另一种执行方式吗A * B,但很少使用。它支持类的操作符重载。

例子

全部折叠

创建一个1乘4的行向量,一个,和一个4乘1的列向量,B

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

一个B

C = A * B
C = 3

结果是一个1乘1的标量,也叫点积内积的向量一个B。或者,你可以计算点积 一个 B 与语法点(A, B)

B一个

C = B *
C =4×41 1 0 0 2 2 0 0 3 3 0 0 4 4 0 0

结果是一个4 × 4矩阵,也叫外产品的向量一个B。两个向量的外积, 一个 B ,返回一个矩阵。

创建两个数组,一个B

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

计算的乘积一个B

C = A * B
C =2×324 35 114 30 52 162

计算的第二行的内积一个第三列B

B:一个(2)* (:,3)
ans = 162

这个答案和C(2、3)

输入参数

全部折叠

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

  • 如果至少有一个输入是标量,那么A * B相当于a * B。在这种情况下,非标量数组可以是任意大小的。

  • nonscalar输入,一个B必须是二维数组的列数在哪里一个必须等于里面的行数B

  • 如果一个人的一个B是一个整数类(int16,uint8,),则另一个输入必须是一个标量。具有整数数据类型的操作数不能是复杂的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|持续时间|calendarDuration
复数的支持:万博1manbetx是的

输出参数

全部折叠

乘积,作为标量、向量或矩阵返回。数组C与输入的行数相同吗一个和输入的列数相同B。例如,如果一个m × 0矩阵是空的吗B那么0 × n矩阵是空的A * B是一个m × n的0矩阵。

提示

  • 用链式矩阵乘法,比如A * B * C,您可以使用圆括号来指示操作的顺序,从而提高执行时间。考虑三个矩阵相乘的情况A * B * C,在那里一个500 - 2,B是2 -到- 500,C是500 - - 2。

    • 没有括号,就是订单的操作从左到右是这样吗A * B首先计算,形成一个500 × 500的矩阵。然后乘以这个矩阵C得到500乘2的结果。

    • 如果你指定* (B * C),然后B * C先乘以,得到一个2 × 2矩阵。然后这个小矩阵相乘一个达到相同的500 × 2结果,但操作更少,中间内存使用量更少。

扩展功能

HDL代码生成
使用HDL编码器™为FPGA和ASIC设计生成Verilog和VHDL代码。

之前介绍过的R2006a