主要内容

m*

矩阵乘法

描述

例子

C=一种*B.是矩阵产物一种B.。如果一种是一个m-by-p和B.是一个p-x-n矩阵,那么C是由定义的m-x-n矩阵

C 一世 j = σ. K. = 1 P. 一种 一世 K. B. K. j

这个定义说c(i,j)是内部产品一世Th行一种j柱子B.. 您可以使用MATLAB编写此定义®冒号运算符as

C(i,j)= a(i,:) * b(:,j)
非标度一种B.,列的数量一种必须等于行的行数B.. 矩阵乘法是不是非标度输入的通用交换。就是,A * B.通常不等于B * A.. 如果至少有一个输入是标量,则A * B.相当于A. * B.并进行了换向。

C= mtimes(一种B.是执行的另一种方法A * B.,但很少使用。它使操作员能够为类重载。

例子

全部收缩

创建一个1×4的行向量,一种,和一个4×1列向量,B.

A=[11 0];B=[1;2.3.4];

一种时代B.

c = a * b
C = 3.

结果是一个1乘1的标量,也称为点产品内部产品载体一种B.。或者,您可以计算DOT产品 一种 B. 用语法dot(A,B)

B.时代一种

c = b * a
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.

a(2,:) * b(:,3)
ans=162

这个答案与C(2,3)

输入参数

全部收缩

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

  • 如果至少有一个输入是标量,则A * B.相当于A. * B.。在这种情况下,Nonscalar阵列可以是任何尺寸。

  • 对于非卡尔投入,一种B.必须是2-d阵列,其中列数一种必须等于行数B.

  • 如果其中一个一种B.是一个整数类(int16uint8.,......),然后另一个输入必须是标量。具有整数数据类型的操作数不能复杂。

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64|逻辑|烧焦|期间|日历
复数支持:金宝app是的

输出参数

全部收缩

产品,作为标量,向量或矩阵返回。大批C与输入相同的行数一种和与输入相同的列数B.. 例如,如果一种是m-x-0空矩阵,并且B.是一个0-by-n空矩阵,然后是A * B.是零的一个m-by-n矩阵。

提示

  • 使用链式矩阵乘法,例如A*B*C,您可以通过使用括号来指示操作顺序来改进执行时间。考虑乘以三个矩阵的情况A*B*C, 在哪里一种是500-by-2,B.是2×500,C是500-by-2。

    • 没有括号,操作顺序从左到右是这样吗A * B.首先计算,形成一个500乘500的矩阵。然后将该矩阵乘以C以达到500乘2的结果。

    • 如果您指定a *(b * c), 然后公元前首先乘以,产生2×2矩阵。然后小矩阵乘以一种达到相同的500×2结果,但操作较少,中间内存使用率较少。

扩展能力

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

在R2006a之前引入