主要内容

pagemtimes

Page-wise矩阵乘法

描述

例子

Z= pagemtimes (XY计算N-D数组对应页面的矩阵乘积XY.输出数组的每一页Z由产品给出:Z(:,:我)= X(:,:我)* Y(:,:,我)

  • 如果一个人的XY是矩阵吗pagemtimes将它与其他输入的每一页相乘。例如,如果X是矩阵吗Z(:,:我)= X * Y(:,:,我)

  • 如果XY拥有超过三个维度,那么所有超越前两个的维度都必须拥有吗兼容的大小pagemtimes隐式扩展额外的维数,使其与所有分页矩阵的组合相乘:Z (:,:, i, j, k) = Xx (:,:, i, j, k) * Yy (:,:, i, j, k).(额外的维度已经扩大XxYy.)

例子

Z= pagemtimes (XtranspXYtranspY可选地计算与指定的转位的矩阵乘积XY.对于这种语法,必须指定两个转置选项。transpXtranspY每一个必须:“转置”“ctranspose”,或“没有”

例子

全部折叠

创建两个3-D数组并相乘相应的页面。

rng默认的X = randi([1 6],2,2,3)
X = X (:: 1) = 5 1 6 6 X (:,: 2) = 4 2 1 4 X (:,:, 3) = 6 1 6 6
Y = randi([1],2, 3)
Y = Y (:: 1) = 6 5 3 1 Y (:,: 2) = 3 5 6 6 Y (:,:, 3) = 4 6 1 6
Z = pagemtimes (X, Y)
Z = Z (:,: 1) = 33 26 54 36 Z (:,: 2) = 24 32 27 29 Z (:,:, 3) = 25 42 30 72

输出的第1页Z(:,:,我)是通过相乘得到的X(:,:我)* Y(:,:,我)

创建一个矩阵一个和一个3d阵列Y,然后将3d数组的每一页与矩阵相乘。

=魔法(3)
一个=3×38 1 6 3 5 7 4 9 2
rng默认的Y = randi([1 10],3,3)
1 . Y(Y(:,:,3)) = 9 10 3 10 7 6 2 1 10 Y(:,:,2) = 10 10 2 2 5 5 10 9 10 10 10
Z = pagemtimes (A, Y)
Z = Z(:,:,3) = 9 9 9 9 91 109 130 105 86 Z(:,:,2) = 142 139 81 110 118 101 78 103 73 Z(:,:,3) = 116 77 112 123 118 117 136 105 116

输出的第1页Z(:,:,我)是通过相乘得到的* Y(:,:,我)

创建两个3d数组XY.使用pagemtimes执行操作X(:,:我)' * Y(:,:,我)在每一页XY

rng默认的X = rand(3,3,3) + 1i;Y =兰德(3,3,3);一个= pagemtimes (X,“ctranspose”, Y,“没有”
=(:: 1) = 0.9350 - 1.2189我0.6392 - 1.0148 0.2302 - 0.9668 0.7894 - 1.2189我0.6920 - 1.0148 0.1839 - 0.9668 0.6316 - 1.2189 0.4792 - 1.0148 0.8544 - 0.9668我(:,:2)= 1.6427 - 1.9622我0.4727 - 0.8547 1.0453 - 1.7476 1.5794 - 1.9622我0.5513 - 0.8547 1.2682 - 1.7476 1.1025 - 1.9622 0.5393 - 0.8547 0.6151 - 1.7476我(:,:,3)= 1.2393- 1.5817i 1.4671 - 1.7401i 1.2737 - 1.4974i 0.9995 - 1.5817i 0.9240 - 1.7401i 0.724 - 1.4974i 1.1504 - 1.5817i 1.2585 - 1.7401i 1.0786 - 1.4974i

现在,执行这个操作X(:,:我)* Y(:,:我)。”在每一页XY

B = pagemtimes (X,“没有”, Y,“转置”
B = B(:: 1)我0.5902 + 0.7844 = 0.9773 + 1.1444 0.6217 0.8270 + 1.1444 + 1.2716我0.6670 0.1629我0.7805 + 1.2716 + 0.7844 + 1.1444我0.1793 + 0.7844 0.8372 + 1.2716 B(:,: 2) 0.8387 + 1.5510 = 0.8120 + 1.4948我1.3086 + 1.5187我0.4491 + 1.4948 0.5983 1.4030我0.4138 + 1.5187 + 1.5510 + 1.4948我1.3871 + 1.5510 1.3988 + 1.5187 B (:,:, 3) = 0.8747+ 1.888 i0.8246 + 1.8554i0.6322 + 1.849i1.5873 + 1.888i1.5648 + 1.8554i0.9777 + 1.0849i1.4888 + 1.888i1.4839 + 1.8554i0.8025 + 1.0849i

创建一个3 × 3 × 2的数组X然后乘以一个3 × 3 × 1 × 4的数组Y.结果的大小是3 × 3 × 2 × 4。

X = 1(3、3、2);一个=眼(3);Y =猫(4,一个2 * 3 *,4 *);Z = pagemtimes (X, Y)
Z = Z (:,:, 1, 1) = 1 1 1 1 1 1 1 1 1 Z (:,:, 2, 1) = 1 1 1 1 1 1 1 1 1 Z (:,:, 1, 2) = 2 2 2 2 2 2 2 2 2 Z (:,:, 2, 2) = 2 2 2 2 2 2 2 2 2 Z (:,:, 1, 3) = 3 3 3 3 3 3 3 3 3 Z (:,:, 2, 3) = 3 3 3 3 3 3 3 3 3 Z(:,:, 1、4)= 4 4 4 4 4 4 4 4 4 Z (:,:, 2, 4) = 4 4 4 4 4 4 4 4 4

大小为1的每个维度(在前两个维度之后)将隐式展开,以匹配其他输入的维度大小,然后是输出的每个页面Z (:,:, i, j)是通过相乘得到的X (:,:, i, j) * Y (:,:, i, j).一种直观的思考这个运算的方法是X在一个3-D数组中包含两个作为页面的矩阵,Y包含四个沿第四维排列的矩阵;因此,这些矩阵的所有组合相乘得到8个3 × 3矩阵。

输入参数

全部折叠

输入数组,指定为密集矩阵或多维数组。的页面XY必须是矩阵乘积(mtimes, *).

  • 如果一个人的XY是矩阵吗pagemtimes将它与其他输入的每一页相乘。例如,如果X是矩阵吗Z(:,:我)= X * Y(:,:,我)

  • 如果XY拥有超过三个维度,那么所有超越前两个的维度都必须拥有吗兼容的大小pagemtimes隐式扩展额外的维数,使其与所有分页矩阵的组合相乘:Z (:,:, i, j, k) = Xx (:,:, i, j, k) * Yy (:,:, i, j, k).(额外的维度已经扩大XxYy.)

数据类型:|
复数的支持:金宝app是的

换位选项,每个都指定为该表中的一个值。

价值 描述
“没有” 不要使用换位。
“转置” 对每一页对应的输入进行换位(转置适用于每一页)。
“ctranspose” 对相应输入的每一页应用复共轭变换(ctranspose适用于每一页)。

使用转置选项来计算操作,例如X ' * Y以页面方式。即使只有一个输入被转置,也必须指定两个转置选项。

例子:pagemtimes (X,“ctranspose”Y“没有”)的逐页版本X ' * Y

数据类型:字符|字符串

输出参数

全部折叠

输出数组,作为多维数组返回。执行的操作pagemtimes这取决于输入的大小XY

的大小X 的大小Y 操作

三维

三维

Z(:,:我)= X(:,:我)* Y(:,:,我)

二维

三维

Z(:,:我)= X * Y(:,:,我)

三维

二维

Z(:,:我)= X(:,:我)* Y

一天

一天

Z (:,:, i, j, k) = X (:,:, i, j, k) * Y (:,:, i, j, k)

的大小Z遵循这些规则:

  • 在前两个维度,矩阵乘法的规则适用。如果任意一个操作数是标量,则结果具有非标量操作数的大小。当两个操作数都是矩阵时,用an——- - - - - -n矩阵与一个n——- - - - - -矩阵的结果是——- - - - - -矩阵。

  • 兼容的尺寸超过了前两个XY展开以匹配非单例维度。因此,如果X10-by-8-by-1-by-3和Y8-by-10-by-4-by-1,那么Z10-by-10-by-4-by-3。

提示

  • 对于真实的N-D数组,pagemtimes (X,“转置”,X,“没有一个”)返回具有对称页面的矩阵。类似地,对于复杂的N-D数组,可以使用pagemtimes (X, ctranspose, X,“没有一个”)

扩展功能

介绍了R2020b