1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| function[Tensor_Res]=Mul_Mod(Tensor,L, M, N,U,L0,I)
%Multiplication of a tensor by a matrix
%You must enter the correspond U.
%In mode I=1, U must be a (L0,L) matrix
%In mode I=2, U must be a (M,L0) matrix
%In mode I=3 U must be a (L0,N);
% mode 1.
if I==1
Tensor_Res=zeros(L0,M,N);
for J=1:N
Tensor_Res(:,:,J)=U*Tensor(:,:,J);
end
%mode 2
elseif I==2
Tensor_Res=zeros(L,L0,N);
for J=1:N
Tensor_Res(:,:,J)=Tensor(:,:,J)*U;
end
%mode 3
elseif I==3
Tensor_Res=zeros(L,M,L0);
for I=1:L0
Tensor_Res(:,:,I)=zeros(L,M);
for J=1:N
Tensor_Res(:,:,I)= Tensor_Res(:,:,I)+Tensor(:,:,J)*U(I,J);
end
end
end |
Partager