塔克张量

塔克格式是一个张量分解X核心G和张量矩阵的乘积(例如,a, B, C)在每一个维度。换句话说,一个张量X表示为:

$ $ {\ mathcal X} = {\ mathcal G} \ times_1 \ times_2 B \ times_2美元加元

在MATLAB的符号,X = ttm (G, {A, B, C})。的ttensor类商店张量的分量X和可以执行许多操作,例如,ttm,没有明确形成张X。

内容

创建一个ttensor张量的核心

核心=张量(兰德(3,2,1),[3 2 1]);% <——核心张量。U ={兰德(5,3),兰德(4,2),兰德(3,1)};< %——矩阵。X = ttensor(核心,U)% <——创建ttensor。
X是大小的ttensor 5 X 4 X 3 X。的核心是一个张量大小3 x 2 x 1 X.core (:,: 1) = 0.1298 0.8117 0.1048 0.6696 0.0632 0.6540 x。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 X。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 X。{3}= 0.4853 0.5602 0.2898

备用核心格式:sptensor、ktensor或ttensor

core1 = sptenrand ([3 2 1], 3);% <——创建一个3 x 2 x 1 sptensor。Y = ttensor (core1 U)% <——核心是sptensor。
Y的ttensor大小5 x 4 x 3 Y。的核心是一个稀疏的张量大小3 x 2 x 1 3 0 (1 1 1) 0.9871 (2 2 1) 0.5015 (3,2,1) 0.8833 Y。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 Y。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 Y。{3}= 0.4853 0.5602 0.2898
V ={兰德(3,2)兰德(2,2),兰德(1、2)};% <——创建一些随机矩阵。嵌件= ktensor (V);% <——创建一个3 x 2 x 1 ktensor。Y = ttensor(嵌件,U)% <——核心是ktensor。
Y的ttensor大小5 x 4 x 3 Y。的核心是ktensor 3 x 2 x 1 Y.core大小。λ= [1]Y.core。U {1} = 0.8746 0.7261 0.6178 0.2917 0.9611 0.4665 Y.core。U {2} = 0.9439 0.0119 0.0943 0.3723 Y.core。U {3} = 0.3542 - 0.0820 Y。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 Y。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 Y。{3}= 0.4853 0.5602 0.2898
core3 = ttensor(张量(1:8,[2 2 2]),V);% <——创建一个3 x 2 x 1 ttensor。Y = ttensor (core3 U)% <——核心是ttensor。
Y的ttensor大小5 x 4 x 3 Y。的核心是ttensor 3 x 2 x 1 Y.core大小。的核心是一个张量大小2 x 2 x 2 Y.core.core (:,: 1) = 1 2 3 4 Y.core.core (:,: 2) = 5 6 7 8 Y.core。U {1} = 0.8746 0.7261 0.6178 0.2917 0.9611 0.4665 Y.core。U {2} = 0.9439 0.0119 0.0943 0.3723 Y.core。U {3} = 0.3542 - 0.0820 Y。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 Y。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 Y。{3}= 0.4853 0.5602 0.2898

创建一个一维ttensor

Z = ttensor(张量(兰德(2,1),2),兰德(4,2))% <——一维ttensor。
Z是ttensor大小4 Z。的核心是一个张量大小2 Z.core (,) = 0.3109 - 0.2558 Z。U {1} = 0.1048 0.3074 0.2903 0.7715 0.4985 0.2026 0.8205 0.9396

ttensor的组成部分

X.core% <——核心张量。
答是一个张量的大小3 x 2 x 1 ans (:,: 1) = 0.1298 0.8117 0.1048 - 0.6696 0.0632 - 0.6540
X.U% <——单元阵列矩阵。
ans = 1×3单元阵列(5×3双)(4×2双)(3×1双)

创建一个ttensor从它的组成部分

Y = ttensor (X.core X.U)% <——创建一个张量的部分。
Y的ttensor大小5 x 4 x 3 Y。的核心是一个张量大小3 x 2 x 1 Y.core (:,: 1) = 0.1298 0.8117 0.1048 0.6696 0.0632 0.6540 Y。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 Y。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 Y。{3}= 0.4853 0.5602 0.2898

创建一个空ttensor。

X = ttensor% <——空ttensor
X是一个ttensor大小(空张量)的X。核心是一个张量的大小(空张量)X。核心= []

使用完整或者张量ttensor转换为张量

X = ttensor(核心,U)% <——创建一个张量
X是大小的ttensor 5 X 4 X 3 X。的核心是一个张量大小3 x 2 x 1 X.core (:,: 1) = 0.1298 0.8117 0.1048 0.6696 0.0632 0.6540 x。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 X。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 X。{3}= 0.4853 0.5602 0.2898
全部(X)% <——将一个张量。
答是一个张量的大小5 x 4 x 3 ans (:,: 1) = 0.8341 0.7370 0.3768 0.6139 0.4723 0.4201 0.2122 0.3489 0.2987 0.2622 0.1356 0.2190 0.5438 0.4827 0.2447 0.4012 0.7929 0.6988 0.3589 0.5827 ans (:,: 2) = 0.9627 0.8507 0.4349 0.7086 0.5451 0.4849 0.2450 0.4027 0.3447 0.3026 0.1566 0.2528 0.6277 0.5572 0.2825 0.4631 0.9152 0.8066 0.4143 0.6726 ans (:,:, 3) = 0.4980 0.4401 0.2250 0.3665 0.2820 0.2508 0.1267 0.2083 0.1783 0.1566 0.0810 0.1308 0.3247 0.2882 0.1461 0.2396 0.4734 0.4172 0.2143 0.3479
张量(X)% <——也将张量。
答是一个张量的大小5 x 4 x 3 ans (:,: 1) = 0.8341 0.7370 0.3768 0.6139 0.4723 0.4201 0.2122 0.3489 0.2987 0.2622 0.1356 0.2190 0.5438 0.4827 0.2447 0.4012 0.7929 0.6988 0.3589 0.5827 ans (:,: 2) = 0.9627 0.8507 0.4349 0.7086 0.5451 0.4849 0.2450 0.4027 0.3447 0.3026 0.1566 0.2528 0.6277 0.5572 0.2825 0.4631 0.9152 0.8066 0.4143 0.6726 ans (:,:, 3) = 0.4980 0.4401 0.2250 0.3665 0.2820 0.2508 0.1267 0.2083 0.1783 0.1566 0.0810 0.1308 0.3247 0.2882 0.1461 0.2396 0.4734 0.4172 0.2143 0.3479

使用双ttensor转换为数组(多维)

双(X)% <——皈依MATLAB数组
ans (:: 1) = 0.8341 0.7370 0.3768 0.6139 0.4723 0.4201 0.2122 0.3489 0.2987 0.2622 0.1356 0.2190 0.5438 0.4827 0.2447 0.4012 0.7929 0.6988 0.3589 0.5827 ans (:,: 2) = 0.9627 0.8507 0.4349 0.7086 0.5451 0.4849 0.2450 0.4027 0.3447 0.3026 0.1566 0.2528 0.6277 0.5572 0.2825 0.4631 0.9152 0.8066 0.4143 0.6726 ans (:,:, 3) = 0.4980 0.4401 0.2250 0.3665 0.2820 0.2508 0.1267 0.2083 0.1783 0.1566 0.0810 0.1308 0.3247 0.2882 0.1461 0.2396 0.4734 0.4172 0.2143 0.3479

使用ndims ttensor的大小和尺寸

ndims (X)% <——数量的维度。
ans = 3
大小(X)% <——行向量的大小。
ans = 5 4 3
大小(X, 2)% <——规模第二模式。
ans = 4

ttensor下标引用

X.core (1, 1, 1)% <——访问一个元素的核心。
ans = 0.1298
X.U {2}% <——提取一个矩阵。
ans = 0.9079 0.9561 0.4013 0.9000 0.5772 - 0.4089 0.4832 - 0.7291
X {2}% <——同上。
ans = 0.9079 0.9561 0.4013 0.9000 0.5772 - 0.4089 0.4832 - 0.7291

ttensor下标赋值

X.core= tenones(size(X.core))% <——插入一个新的核心。
X是大小的ttensor 5 X 4 X 3 X。的核心是一个张量大小3 x 2 x 1 X.core (:,: 1) = 1 1 1 1 1 1 x。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 X。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 X。{3}= 0.4853 0.5602 0.2898
X.core (2 2 1) = 7% <——改变单个元素。
X是大小的ttensor 5 X 4 X 3 X。的核心是一个张量大小3 x 2 x 1 X.core (:,: 1) = 1 1 1 7 1 1 x。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 X。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 X。{3}= 0.4853 0.5602 0.2898
X {3} (1:2, 1) = (1, 1)% <——改变矩阵模式3。
X是大小的ttensor 5 X 4 X 3 X。的核心是一个张量大小3 x 2 x 1 X.core (:,: 1) = 1 1 1 7 1 1 x。U {1} = 0.5678 0.8964 0.8084 0.3669 0.1125 0.8239 0.2715 0.4471 0.0643 0.3697 0.3141 0.8189 0.6985 0.8726 0.5384 X。U {2} = 0.9079 0.9561 0.4013 0.9000 0.5772 0.4089 0.4832 0.7291 X。{3}= 1.0000 1.0000 0.2898

使用结束最后一个索引

{X}结束% <——一样的X {3}。
ans = 1.0000 1.0000 0.2898

基本操作(uplus uminus mtimes) ttensor。

X = ttensor (tenrand([2 2 2]),{兰德(3 2),兰德(1、2),兰德(2,2)})% <——数据。+ X% < uplus——调用。
X是大小的ttensor 3 X 1 X 2 X。的核心是一个张量大小2 x 2 x 2 X.core (:,: 1) = 0.2107 0.6356 0.9670 0.4252 X.core (:,: 2) = 0.2262 0.7426 0.9325 0.5133 x。U {1} = 0.5417 0.6280 0.2143 0.0907 0.8007 0.8121 X。U {2} = 0.0968 - 0.1922 X。U {3} = 0.0639 0.4619 0.4969 0.8735 ans的ttensor大小3 x 1 x 2 ans.core是一个张量的大小2 x 2 x 2 ans.core (:,: 1) = 0.2107 0.6356 0.9670 0.4252 ans.core (:,: 2) = 0.2262 0.7426 0.9325 0.5133 ans.U {1} = 0.5417 0.6280 0.2143 0.0907 0.8007 0.8121 ans.U {2} = 0.0968 - 0.1922 ans.U {3} = 0.0639 0.4619 0.4969 0.8735
- x% < uminus——调用。
俺们是大小3 x 1 x 2的ttensor ans.core是一个张量的大小2 x 2 x 2 ans.core (:,: 1) = -0.2107 -0.6356 -0.9670 -0.4252 ans.core (:,: 2) = -0.2262 -0.7426 -0.9325 -0.5133 ans.U {1} = 0.5417 0.6280 0.2143 0.0907 0.8007 0.8121 ans.U {2} = 0.0968 - 0.1922 ans.U {3} = 0.0639 0.4619 0.4969 0.8735
5 * X% < mtimes——调用。
俺们是大小3 x 1 x 2的ttensor ans.core是一个张量的大小2 x 2 x 2 ans.core (:,: 1) = 1.0536 3.1781 4.8349 2.1261 ans.core (:,: 2) = 1.1311 3.7129 4.6625 2.5665 ans.U {1} = 0.5417 0.6280 0.2143 0.0907 0.8007 0.8121 ans.U {2} = 0.0968 - 0.1922 ans.U {3} = 0.0639 0.4619 0.4969 0.8735

使用交换重排ttensor的模式

交换(X, [3 2 1])% <——逆转X的模式
ans的ttensor大小2 x 1 x 3 ans.core是一个张量的大小2 x 2 x 2 ans.core (:,: 1) = 0.2107 0.6356 0.2262 0.7426 ans.core (:,: 2) = 0.9670 0.4252 0.9325 0.5133 ans.U {1} = 0.0639 0.4619 0.4969 0.8735 ans.U {2} = 0.0968 - 0.1922 ans.U {3} = 0.5417 0.6280 0.2143 - 0.0907 0.8007 - 0.8121

显示一个ttensor

张量显示通过显示组件的核心,每个矩阵。

disp (X)% <——打印ttensor。
俺们是大小3 x 1 x 2的ttensor ans.core是一个张量的大小2 x 2 x 2 ans.core (:,: 1) = 0.2107 0.6356 0.9670 0.4252 ans.core (:,: 2) = 0.2262 0.7426 0.9325 0.5133 ans.U {1} = 0.5417 0.6280 0.2143 0.0907 0.8007 0.8121 ans.U {2} = 0.0968 - 0.1922 ans.U {3} = 0.0639 0.4619 0.4969 0.8735