tenmat函数将一个多维数组(张量)转换成一个矩阵,大多数是将三维的tensor张量转换成二维矩阵形式。
如果查看tenmat以后的矩阵的形状,下面将举例并讲述技巧。
X是一个张量(3,4,2),可以看作两个3×4的矩阵,如图1
图1
(1)X_1 = tenmat(X,1); %X_1的形状 [3,8]
官方理解:将张量X的第一个维度(每个元素)转换成一个矩阵,并将结果赋值给变量X_1
我的理解是:将X的第一个维度,即数字3保持不变,因为要转化成一个矩阵形式,剩下两个元素 相乘2×4=8,所以最后X_1的形状 [3,8]
MATLAB运算结果:
X_1.data =
列 1 至 3
1 4 7
2 5 8
3 6 9
列 4 至 6
10 13 16
11 14 17
12 15 18
列 7 至 8
19 22
20 23
21 24
(2)X_2 = tenmat(X,2);
官方理解:将张量X的第二个维度(列)转换成一个矩阵,并将结果赋值给变量X_2
我的理解是:将X的第二个维度,即数字4保持不变,因为要转化成一个矩阵形式,剩下两个元素 相乘2×3=6,所以最后X_1的形状 [4,6]
MATLAB运算结果:
X_2.data =
1 2 3 13 14 15
4 5 6 16 17 18
7 8 9 19 20 21
10 11 12 22 23 24
2)X_3 = tenmat(X,3);
官方理解:将张量X的第三个维度(行)转换成一个矩阵,并将结果赋值给变量X_3
我的理解是:将X的第三个维度,即数字2保持不变,因为要转化成一个矩阵形式,剩下两个元素 相乘4×3=12,所以最后X_1的形状 [2,12]
MATLAB运算结果:
X_3.data =
列 1 至 7
1 2 3 4 5 6 7
13 14 15 16 17 18 19
列 8 至 12
8 9 10 11 12
20 21 22 23 24
图2.matlab程序举例及运算结果的形状