当前位置:   article > 正文

matlab张量n模积,matlab 求解高阶张量n-mode(n-模式)奇异值

matlab n模积

% Matlab Tensor Toolbox:Computing the HOSVD

% 定义N阶张量A,以四阶为例

% 向量n中的数字可以理解为每一阶的维数

n = [2,4,5,7];

A = tenrand(n);

% 定义S

S = A;

% 求解奇异值

% 本例中A.size = 1\2\3\4

% 每一个循环分别为按照模式k = 1\2\3\4 展开

for k = 1:length(A.size)

C = tenmat(A,k);

% 此处的Sigma即为按照模式-k展开的奇异值

[u{k},Sigma,V] = svd(C.data);

% 循环结束后得到核心张量,其实就是计算核心张量的公式

S = ttm(S,u{k}',k);

end

计算得:

模式-1的奇异值为:[9.3128,3.5044];

模式-2的奇异值为:[9.0445,2.4886,2.2098,1.8003,1.6996]

模式-3的奇异值为:[9.0647,2.4899,2.4192,2.1881]

模式-4的奇异值为:[8.9488,2.1852,1.9714,1.7540,1.7080,1.5230]

结果没有参考价值,因为是tenrand()得到的张量矩阵,但奇异值的个数与每阶的维数相同。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/955574
推荐阅读
相关标签
  

闽ICP备14008679号