主要内容

pagemtimes

分页矩阵乘法

描述

例子

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

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

  • 如果X而且Y有三个以上的维度,那么所有超出前两个的维度都必须有吗兼容的大小pagemtimes隐式扩展额外维度,乘上分页矩阵的所有组合:Z(:,:,i,j,k) = Xx(:,:,i,j,k)*Yy(:,:,i,j,k).(额外的维度已经展开Xx而且Yy.)

例子

Z= pagemtimes (XtranspXYtranspY可选地计算与的指定转置的矩阵乘积X而且Y.对于这个语法,必须指定两个转置选项。transpX而且transpY每一个都必须是:“转置”“ctranspose”,或“没有”

例子

全部折叠

创建两个3d数组并将相应的页面相乘。

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 6],2,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

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

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

魔术(3)
一个=3×38 1 6 3 5 7 4 9 2
rng默认的Y = randi([1 10],3,3,3)
Y = Y(:,:,1) = 9 10 3 10 7 6 2 1 10 Y(:,:,2) = 10 10 2 2 5 5 10 9 10 Y(:,:,3) = 8 1 7 10 9 8 7 10 8
Z = pagemtimes(A,Y)
Z = Z(:,:,1) = 94 93 90 91 72 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

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

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

rng默认的X = rand(3,3,3) + 1i;Y = rand(3,3,3);A = 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.5817我1.4671 - 1.7401 1.2737 - 1.4974 0.9995 - 1.5817我0.9240 - 1.7401 0.7324 - 1.4974 1.1504 - 1.5817 1.2585 - 1.7401 1.0786 - 1.4974我

现在,执行该操作X(:,:我)* Y(:,:我)。”在每一页X而且Y

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.8246 + 1.8554 = 0.8747 + 1.8788 0.6322 1.5648我1.5873 + 1.8788 + 1.0849 + 1.8554我0.9777 + 1.0849 1.4888 + 1.8788 1.4839 0.8025 + 1.0849 + 1.8554我

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

X = ones(3,3,2);A =眼睛(3);Y = cat(4,A,2*A,3*A,4*A);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包含两个矩阵作为三维数组的页,Y包含沿第四维排列的四个矩阵;因此,将这些矩阵的所有组合相乘得到8个3 × 3矩阵。

输入参数

全部折叠

输入数组,指定为密集矩阵或多维数组。这几页X而且Y必须是矩阵乘积的有效输入(mtimes, *).

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

  • 如果X而且Y有三个以上的维度,那么所有超出前两个的维度都必须有吗兼容的大小pagemtimes隐式扩展额外维度,乘上分页矩阵的所有组合:Z(:,:,i,j,k) = Xx(:,:,i,j,k)*Yy(:,:,i,j,k).(额外的维度已经展开Xx而且Yy.)

数据类型:|
复数支持:是的

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

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

使用转置选项来计算诸如X ' * Y以一种明智的方式。即使只有一个输入被转置,也必须指定两个转置选项。

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

数据类型:字符|字符串

输出参数

全部折叠

输出数组,作为多维数组返回。执行的操作pagemtimes取决于输入的大小X而且Y

的大小X 的大小Y 操作

三维

三维

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

二维

三维

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

三维

二维

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

一天

一天

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

的大小Z遵循以下规则:

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

  • 中的前两个以外的兼容维度X而且Y扩展以匹配非单例维度。因此,如果X是10 × 8 × 1 × 3和Y是8 × 10 × 4 × 1吗Z10-by-10-by-4-by-3。

更多关于

全部折叠

数组的页面

页面方面的功能pagemtimes在二维矩阵上进行运算,这些矩阵被排列成多维数组。例如,对于3-D数组,通常称为数组的第三维元素页面因为它们彼此叠在一起,就像书中的书页一样。每一页都是一个由函数操作的矩阵。

一种三维阵列,其中若干矩阵相互叠加,作为三维页面

您还可以将二维矩阵集合组装成高维数组,如4-D或5-D数组,在这些情况下pagemtimes仍然将数组的基本单元视为一个被操作的二维矩阵,例如X (:,:, i, j, k, l)

函数在将矩阵集合组合成多维数组时非常有用,而0函数在预分配多维数组时非常有用。

提示

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

扩展功能

版本历史

在R2020b中引入

Baidu
map