matlab中服从高斯分布的矩阵_一些张量的计算步骤matlab代码
生活随笔
收集整理的這篇文章主要介紹了
matlab中服从高斯分布的矩阵_一些张量的计算步骤matlab代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Matlab工具箱Tensor Toolbox,安裝鏈接如下
CSDN-專業IT技術社區-登錄?blog.csdn.net . ,這是我們定義的張量
,matlab代碼:
%% %工具包:Tensor Toolbox clc clear all X1 = 1:12; X1 = reshape(X1,[3,4]); X2 = 13:24; X2 = reshape(X2,[3,4]); %如何用矩陣拼接為張量,用tensor()函數 X(:,:,1) = X1; X(:,:,2) = X2;%這只是3維數組,實際中Tensor Toobox 也不會產生誤差,但為了防止意外 X = tensor(X);%% %工具包:Tensor Toolbox clc clear all X1 = 1:12; X1 = reshape(X1,[3,4]); X2 = 13:24; X2 = reshape(X2,[3,4]); %如何用矩陣拼接為張量,用tensor()函數 X(:,:,1) = X1; X(:,:,2) = X2; X = tensor(X); %張量按模展開 X_1 = tenmat(X,1); X_2 = tenmat(X,2); X_3 = tenmat(X,3);1,張量與矩陣的模1乘 法。
,其中矩陣 。過程如下
結果如下
,再將矩陣折疊回張量。記住上面是輔助理解,真正的計算過程如圖:
%張量與矩陣的模乘 U = 1:6; U = reshape(U,[2,3]); Y1 = ttm(X,U,1)(2)張量與向量模乘
,其中計算步驟:
。。。。
最終
.上述展開的只是輔助理解,真正的計算公式是按照下面計算的。%張量與矩陣相乘 v = [1,2,3,4]'; ttv(X,v,2)ttm和ttv分別是tensor times matrix and tensor times vector的縮寫。便于記憶。張量與向量的模乘公式begin{bmatrix}end{bmatrix}
clc clear %I1=I2=I3=50,r={2,4,6,8,10,...,26} dim = 3; I1 = dim,I2 = dim ,I3 =dim; r = 2; %生成[0,1]的均勻分布的隨機張量 coreTensor = tensor(rand(r,r,r)); %生成因子矩陣,服從[-0.5,0.5]的均勻分布 U1 = -0.5 + rand(I1,r); U2 = -0.5 + rand(I2,r); U3 = -0.5 + rand(I3,r); T = ttm(coreTensor,{U1,U2,U3},[1,2,3])總結
以上是生活随笔為你收集整理的matlab中服从高斯分布的矩阵_一些张量的计算步骤matlab代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress 外部数据接口_wor
- 下一篇: Win10系统修改主机名、用户名称和密码