主要内容

mtimes

矩阵乘法

描述

例子

C一个B是矩阵的乘积吗一个B.如果一个是m-by-p and吗B是p × n矩阵吗C一个m × 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是一个整数类(int16uint8,…),则另一个输入必须是标量。整数数据类型的操作数不能是复杂的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|持续时间|calendarDuration
复数的支持:金宝app是的

输出参数

全部折叠

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

提示

  • 链式矩阵乘法,例如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 Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。

之前介绍过的R2006a