主要内容

m*

矩阵乘法

描述

例子

C=一种*B.是矩阵产物一种B.。如果一种是一个m-by-p和B.是p-by-n矩阵,然后是C是一个m-by-n矩阵由

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

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

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 = [1 1 0 0];b = [1;2;3;4];

一种时代B.

c = a * b
C = 3.

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

B.时代一种

c = b * a
C =4×4.1 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|逻辑|char|期间|日历
复数支持:金宝app是的

输出参数

全部收缩

产品,作为标量,向量或矩阵返回。大批C与输入相同的行数一种和与输入相同的列数B.。例如,如果一种是一个m-by-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 Coder™生成FPGA和ASIC设计的Verilog和VHDL代码。

在R2006A之前介绍