2017-09-17 76 views
0

在MATLAB中,我需要生成一個大小爲例如具有等級(4,3,15)的13×10×80,即第一次,第二次和第三次摺疊分別具有等級4,3和15。生成低秩張量

如何在MATLAB中做到這一點?

+0

這似乎是一個數學問題,因此改爲問問https://math.stackexchange.com可能會有用。 – m7913d

+0

您可以在matlab中使用「張量工具箱」來執行此操作。 – kmario23

回答

0

正如'kmario23'提到你可以使用Matalb tensor toolbox來做到這一點。我認爲這是你正在尋找的東西:

X = tenrand([13 10 80]) %<-- Generate data 
U1 = nvecs(X,1,4); %<-- Mode 1 
U2 = nvecs(X,2,3); %<-- Mode 2 
U3 = nvecs(X,3,15); %<-- Mode 3 
S = ttm(X,{pinv(U1),pinv(U2),pinv(U3)}); %<-- Core 
Y = ttensor(S,{U1,U2,U3});