I would like to know the different intuition to design the two algorithms to get 3rd-order tensor SVD:
- The first one is for
[n1,n2,n3] = size(Y);
, afterY = fft(Y,[],3);
, apply SVD to the first half front slices asfor i = 2 : round(n3/2) [U,S,V] = svd(Y(:,:,i),'econ');
then getX(:,:,i) = U(:,1:r)*diag(S)*V(:,1:r)';
andX(:,:,n3+2-i) = conj(X(:,:,i))
- The second is to loop
for i = 1 : n3
then SVD eachY(:,:,i)
Since it seems that there is no need for the conjugation in the matrix case, I wonder where this idea comes from and is the first case more robust when generalizing to higher order tensors?
Thanks ahead for everyone’s answers!