主要内容

pagesvd

Page-wise奇异值分解

自从R2021b

描述

例子

年代= pagesvd (X)返回奇异值多维数组的每一页。输出的每一页(::,我)是一个列向量包含奇异值的X(:,:,我)在减少。如果每个页面X是一个——- - - - - -n矩阵,然后在每个页面返回的奇异值数年代分钟(m, n)

例子

(U,年代,V)= pagesvd (X)计算奇异值分解的每一页一个多维数组。的页面输出阵列满足:U(:,:我)* S (:,:, i) * V(:,:我)' = X(:,:,我)

年代一样的尺寸吗X,每个页面的年代是一个对角矩阵非负奇异值递减顺序。的页面UV酉矩阵。

如果X三维多呢pagesvd返回数组与相同数量的维度:U (:,:, i, j, k) * S (:,:, i, j, k) * V (:,:, i, j, k)”= X (:,:, i, j, k)

例子

(___)= pagesvd (X“经济学”)产生大包装分解的页面X使用之前的输出参数组合。如果X是一个——- - - - - -n——- - - - - -p数组,然后:

  • m > n——只有第一个n列的每个页面U计算,年代有大小n——- - - - - -n——- - - - - -p

  • m = n- - - - - -pagesvd (X,“经济学”)相当于pagesvd (X)

  • m < n——只有第一个列的每个页面V计算,年代有大小——- - - - - -——- - - - - -p

大包装分解去除额外的行或列的零奇异值的页面年代和列UV把那些零的表达式U(:,:我)* S (:,:, i) * V(:,:,我)。删除这些零和列可以改善执行时间并减少存储需求的准确性的前提下分解。

例子

(___)= pagesvd (___,outputForm)指定返回的奇异值的输出格式年代。您可以使用这个选项与任何以前的输入或输出参数组合。指定“向量”返回的每个页面年代作为一个列向量,或“矩阵”返回的每个页面年代是一个对角矩阵。

例子

全部折叠

创建两个6-by-6矩阵。使用函数来连接他们沿着第三维6-by-6-by-2数组。

一个=魔法(6);B = hilb (6);X =猫(3 A、B);

计算每个页面的奇异值通过调用pagesvd一个输出。

S = pagesvd (X)
S = S (:: 1) = 111.0000 50.6802 34.3839 10.1449 5.5985 0.0000 S (:,: 2) = 1.6189 0.2424 0.0163 - 0.0006 0.0000 - 0.0000

创建两个5-by-5矩阵。使用函数来连接他们沿着第三维5-by-5-by-2数组。

一个=魔法(5);B = hilb (5);X =猫(3 A、B);

计算每个数组的奇异值页面。

s = pagesvd (X)
s = s(:: 1) = 65.0000 22.5471 21.6874 13.4036 11.9008秒(:,:2)= 1.5671 0.2085 0.0114 0.0003 - 0.0000

执行一个完整的页面上每个数组奇异值分解。

[U, V] = pagesvd (X)
U = U (:: 1) = -0.4472 -0.5456 0.5117 0.1954 -0.4498 -0.4472 -0.4498 -0.1954 -0.5117 0.5456 -0.4472 -0.0000 -0.6325 0.6325 0.0000 -0.4472 0.4498 -0.1954 -0.5117 -0.5456 -0.4472 0.5456 0.5117 0.1954 0.4498 U (:,: 2) = -0.7679 0.6019 -0.2142 0.0472 0.0062 -0.4458 -0.2759 0.7241 -0.4327 -0.1167 -0.3216 -0.4249 0.1205 0.6674 0.5062 -0.2534 -0.4439 -0.3096 0.2330 -0.7672 -0.2098 -0.4290 -0.5652 -0.5576 0.3762
S = S(:: 1) 22.5471 = 65.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21.6874 13.4036 11.9008 0 0 0 0 0年代(:,:2)0.2085 = 1.5671 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0114 0.0003 0.0000 0 0 0 0 0
V = V (:,: 1) = -0.4472 -0.4045 0.2466 -0.6627 0.3693 -0.4472 -0.0056 0.6627 0.2466 -0.5477 -0.4472 0.8202 -0.0000 -0.0000 0.3568 -0.4472 -0.0056 -0.6627 -0.2466 -0.5477 -0.4472 -0.4045 -0.2466 0.6627 0.3693 V (:,: 2) = -0.7679 0.6019 -0.2142 0.0472 0.0062 -0.4458 -0.2759 0.7241 -0.4327 -0.1167 -0.3216 -0.4249 0.1205 0.6674 0.5062 -0.2534 -0.4439 -0.3096 0.2330 -0.7672 -0.2098 -0.4290 -0.5652 -0.5576 0.3762

验证的关系 X = U 年代 V H 对于数组的每一页,在机器的精度。

e1 =规范(X (:,: 1) - U (:,: 1) * S (:,: 1) * V (:,: 1)”,“摇来摇去”)
e1 = 7.4110 e-14
e2 =规范(X (:,: 2) - U (:,: 2) * S (:,: 2) * V (:,: 2)”,“摇来摇去”)
e2 = 4.3111 e-16

或者,您可以使用pagemtimes同时检查两个页面的关系。

我们= pagemtimes (U,年代);USV = pagemtimes(我们,“没有”V,“ctranspose”);e = max (abs (X - USV), [],“所有”)
e = 2.9310 e-14

创建两个6-by-6矩阵。使用函数来连接他们沿着第三维6-by-6-by-2数组。

一个=魔法(6);B = hilb (6);X =猫(3 A、B);

计算每个数组的计算页面。默认情况下,pagesvd回报每一页的奇异值作为一个对角矩阵,当你指定多个输出。

[U, V] = pagesvd (X)
U = U (:: 1) = -0.4082 0.5574 0.0456 -0.4182 0.3092 0.5000 -0.4082 -0.2312 0.6301 -0.2571 -0.5627 -0.0000 -0.4082 0.4362 0.2696 0.5391 0.1725 -0.5000 -0.4082 -0.3954 -0.2422 -0.4590 0.3971 -0.5000 -0.4082 0.1496 -0.6849 0.0969 -0.5766 -0.0000 -0.4082 -0.5166 -0.0182 0.4983 0.2604 0.5000 U (:,: 2) = -0.7487 0.6145 -0.2403 -0.0622 0.0111 -0.0012 -0.4407 -0.2111 0.6977 0.4908 -0.1797 0.0356 -0.3207 -0.3659 0.2314 -0.5355 0.6042 -0.2407 -0.2543 -0.3947 -0.1329 -0.4170 -0.4436 0.6255 -0.2115 -0.3882 -0.3627 0.0470 -0.4415 -0.6898 -0.1814 -0.3707 -0.5028 0.5407 0.4591 0.2716
S = S (:: 1) = 111.0000 0 0 0 0 0 0 0 0 0 0 0 0 34.3839 50.6802 10.1449 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 5.5985 S (:,: 2) = 1.6189 0 0 0 0 0 0 0 0 0 0 0 0 0.0163 0.2424 0.0006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 0.0000
V = V (:,: 1) = -0.4082 0.6234 -0.3116 0.2495 0.2511 -0.4714 -0.4082 -0.6282 0.3425 0.1753 0.2617 -0.4714 -0.4082 -0.4014 -0.7732 -0.0621 -0.1225 0.2357 -0.4082 0.1498 0.2262 -0.4510 0.5780 0.4714 -0.4082 0.1163 0.2996 0.6340 -0.3255 0.4714 -0.4082 - 0.1401 0.2166 - -0.5457 -0.6430 - -0.2357 V (:,: 2) = -0.7487 0.6145 -0.2403 -0.0622 0.0111 -0.0012 -0.4407 -0.2111 0.6977 0.4908 -0.1797 0.0356 -0.3207 -0.3659 0.2314 -0.5355 0.6042 -0.2407 -0.2543 -0.3947 -0.1329 -0.4170 -0.4436 0.6255 -0.2115 -0.3882 -0.3627 0.0470 -0.4415 -0.6898 -0.1814 -0.3707 -0.5028 0.5407 0.4591 0.2716

指定“向量”选择返回每个页面的奇异值作为一个列向量。

(U, V) = pagesvd (X,“向量”)
U = U (:: 1) = -0.4082 0.5574 0.0456 -0.4182 0.3092 0.5000 -0.4082 -0.2312 0.6301 -0.2571 -0.5627 -0.0000 -0.4082 0.4362 0.2696 0.5391 0.1725 -0.5000 -0.4082 -0.3954 -0.2422 -0.4590 0.3971 -0.5000 -0.4082 0.1496 -0.6849 0.0969 -0.5766 -0.0000 -0.4082 -0.5166 -0.0182 0.4983 0.2604 0.5000 U (:,: 2) = -0.7487 0.6145 -0.2403 -0.0622 0.0111 -0.0012 -0.4407 -0.2111 0.6977 0.4908 -0.1797 0.0356 -0.3207 -0.3659 0.2314 -0.5355 0.6042 -0.2407 -0.2543 -0.3947 -0.1329 -0.4170 -0.4436 0.6255 -0.2115 -0.3882 -0.3627 0.0470 -0.4415 -0.6898 -0.1814 -0.3707 -0.5028 0.5407 0.4591 0.2716
S = S (:: 1) = 111.0000 50.6802 34.3839 10.1449 5.5985 0.0000 S (:,: 2) = 1.6189 0.2424 0.0163 - 0.0006 0.0000 - 0.0000
V = V (:,: 1) = -0.4082 0.6234 -0.3116 0.2495 0.2511 -0.4714 -0.4082 -0.6282 0.3425 0.1753 0.2617 -0.4714 -0.4082 -0.4014 -0.7732 -0.0621 -0.1225 0.2357 -0.4082 0.1498 0.2262 -0.4510 0.5780 0.4714 -0.4082 0.1163 0.2996 0.6340 -0.3255 0.4714 -0.4082 - 0.1401 0.2166 - -0.5457 -0.6430 - -0.2357 V (:,: 2) = -0.7487 0.6145 -0.2403 -0.0622 0.0111 -0.0012 -0.4407 -0.2111 0.6977 0.4908 -0.1797 0.0356 -0.3207 -0.3659 0.2314 -0.5355 0.6042 -0.2407 -0.2543 -0.3947 -0.1329 -0.4170 -0.4436 0.6255 -0.2115 -0.3882 -0.3627 0.0470 -0.4415 -0.6898 -0.1814 -0.3707 -0.5028 0.5407 0.4591 0.2716

如果您指定一个输出参数,如S = pagesvd (X),然后pagesvd开关行为返回每个页面的默认奇异值作为一个列向量。在这种情况下,您可以指定“矩阵”选择返回的每个页面作为一个对角矩阵奇异值。

创建一个随机整数10-by-3矩阵的元素。

X =兰迪([0 3]10 3);

执行一个完整的大包装分解分解和矩阵。

[U, V] = pagesvd (X)
U =10×10-0.2554 -0.1828 0.6086 -0.6120 -0.0623 -0.2365 -0.1841 0.0165 -0.2369 -0.0792 -0.3408 0.4291 0.0365 0.1237 -0.2953 0.3040 0.0346 -0.3966 -0.3014 -0.5041 -0.3018 -0.3274 -0.6272 -0.0847 -0.3313 -0.3920 -0.2374 -0.2006 -0.1896 0.0717 -0.3560 -0.2919 0.3996 0.7531 -0.0136 -0.1963 -0.1046 0.0518 -0.0521 0.0788 -0.3711 -0.0109 -0.1957 -0.0519 0.8784 0.0025 -0.0413 -0.1224 -0.1273 -0.1289 -0.1298 -0.5635 -0.0331 -0.0842 -0.0685 0.7933 -0.1005 0.0004 -0.0259 0.1119 -0.2002 -0.2327 -0.0099 -0.0782 -0.0595 -0.0962 0.9398 -0.0274 -0.0524 0.0117 -0.3278 0.1769 -0.1847 -0.0238 -0.0987 0.0714 -0.0078 0.8775 -0.1186 -0.1662 -0.4273 0.0534 0.0145 -0.1222 -0.0872 -0.0131 -0.0467 -0.0828 0.8772 -0.1140 -0.3408 0.4291 0.0365 -0.0661 -0.0416 0.1247 0.0203 -0.0831 -0.1055 0.8114
S =10×33.4598 10.9594 4.6820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
V =3×3-0.6167 0.3011 0.7274 -0.6282 0.3686 -0.6852 -0.4744 -0.8795 -0.0382
(问题、Se、Ve) = pagesvd (X,“经济学”)
问题=10×3-0.2554 -0.1828 0.6086 -0.3408 0.4291 0.0365 -0.3018 -0.3274 -0.6272 -0.3560 -0.2919 0.3996 -0.3711 -0.0109 -0.1957 -0.1298 -0.5635 -0.0331 -0.2002 -0.2327 -0.0099 -0.3278 0.1769 -0.1847 -0.4273 0.0534 0.0145 -0.3408 0.4291 0.0365
Se =3×310.9594 0 0 0 0 0 0 4.6820 3.4598
Ve =3×3-0.6167 0.3011 0.7274 -0.6282 0.3686 -0.6852 -0.4744 -0.8795 -0.0382

大包装的分解,pagesvd只计算的前三列问题,Se3 x3的。

输入参数

全部折叠

输入数组,指定为一个矩阵或多维数组。

数据类型:|
复数的支持:万博1manbetx是的

指定输出格式的奇异值,这些值之一:

  • “向量”——每一页年代是一个列向量。这是默认行为当你指定一个输出,如S = pagesvd (X)

  • “矩阵”——每一页年代是一个对角矩阵。这是默认行为当你指定多个输出,如[U, V] = pagesvd (X)

例子:(U, V) = pagesvd (X,“矢量”)返回的页面年代对角矩阵的列向量而不是。

例子:S = pagesvd (X,“矩阵”)返回的页面年代对角矩阵的列向量。

数据类型:字符|字符串

输出参数

全部折叠

左奇异向量,作为一个多维数组返回。每一页U(:,:,我)是一个矩阵的左奇异向量是谁的列X(:,:,我)

  • 对于一个——- - - - - -n矩阵X(:,:,我)m > n,大包装分解pagesvd (X,“经济学”)只计算第一n列的每个页面U。在这种情况下,列的U(:,:,我)是正交的,U(:,:,我)是一个——- - - - - -n矩阵满足 U H U = n

  • 否则,pagesvd (X)回报每一页U(:,:,我)作为一个——- - - - - -酉矩阵满足 U U H = U H U = 。的列U(:,:,我)对应于非零奇异值形成的一组标准正交基向量的范围X(:,:,我)

不同的机器和MATLAB版本®仍然可以产生不同的奇异向量数值准确。对应的列U(:,:,我)V(:,:,我)可以翻转他们的迹象,因为这并不影响表达式的值U(:,:我)* S (:,:, i) * V(:,:,我)

奇异值,作为一个多维数组返回。每一页(::,我)包含的奇异值X(:,:,我)在减少。

对于一个——- - - - - -n矩阵X(:,:,我):

  • 大包装分解(U, V) = pagesvd (X,“经济学”)返回(::,我)作为一个方阵min ([m, n])

  • 完整的分解[U, V] = pagesvd (X)返回年代同样的大小X

此外,每个页面的奇异值年代返回列向量或矩阵对角取决于你电话吗pagesvd和你是否指定outputForm选择:

  • 如果你叫pagesvd有一个输出或指定“向量”选项,然后每个页面年代是一个列向量。

  • 如果你叫pagesvd有多个输出或指定“矩阵”选项,然后每个页面年代是一个对角矩阵。

右奇异向量,作为一个多维数组返回。每一页V(:,:,我)是一个矩阵的右奇异向量是谁的列X(:,:,我)

  • 对于一个——- - - - - -n矩阵X(:,:,我)m < n,大包装分解pagesvd (X,“经济学”)只计算第一列的每个页面V。在这种情况下,列的V(:,:,我)是正交的,V(:,:,我)是一个n——- - - - - -矩阵满足 V H V =

  • 否则,pagesvd (X)回报每一页V(:,:,我)作为一个n——- - - - - -n酉矩阵满足 V V H = V H V = n 。的列V(:,:,我)对应于非零奇异值形成的一组标准正交基向量的零空间X(:,:,我)

不同的机器和MATLAB版本仍然可以产生不同的奇异向量数值准确。对应的列U(:,:,我)V(:,:,我)可以翻转他们的迹象,因为这并不影响表达式的值U(:,:我)* S (:,:, i) * V(:,:,我)

更多关于

全部折叠

数组的页面

Page-wise之类的函数pagesvd操作二维矩阵被安排到一个多维数组。例如,使用一个三维数组中的元素数组的通常被称为第三维度页面因为他们彼此堆栈的顶部像页的一本书。每一页是一个矩阵所操作的函数。

三维数组与几个矩阵相互堆叠上的页面在第三维度

您还可以将一个二维矩阵集合组装成一个高维数组,如4 - d或5 d的数组,并在这些情况下pagesvd还是把数组的基本单位,作为一个二维的矩阵,如X (:,:, i, j, k, l)

函数是用于组装矩阵的集合成一个多维数组,和0函数是用于preallocating多维数组。

提示

  • 结果使用pagesvd是数值相当于计算每个相同的矩阵的奇异值分解在吗循环。然而,这两个结果可能由于浮点舍入误差略有不同。

扩展功能

版本历史

介绍了R2021b