0001 function [sttm] = tt_sparse_for_mv(ttm, cuttol)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 z
0017 d=size(ttm,1);
0018
0019 sttm=cell(d+2,1);
0020 sttm{d+1}=zeros(d-1,1);
0021 sttm{d+2}=zeros(d,1);
0022
0023 n=size(ttm{1},1);
0024 m=size(ttm{1},2);
0025 rm1=size(ttm{1},3);
0026 sttm{d+1}(1)=rm1;
0027 sttm{d+2}(1)=n;
0028 sttm{1}=reshape(permute(ttm{1},[1,3,2]),[n*rm1,m]);
0029 sttm{1}(find(abs(sttm{1})/max(max(abs(sttm{1})))<cuttol))=0;
0030 sttm{1}=sparse(sttm{1});
0031
0032 n=size(ttm{d},1);
0033 m=size(ttm{d},2);
0034 rm1=size(ttm{d},3);
0035 sttm{d+1}(d-1)=rm1;
0036 sttm{d+2}(d)=n;
0037 sttm{d}=reshape(permute(ttm{d},[1,3,2]),[n*rm1,m]);
0038 sttm{d}(find(abs(sttm{d})/max(max(abs(sttm{d})))<cuttol))=0;
0039 sttm{d}=sparse(sttm{d});
0040
0041 for i=2:d-1
0042 n=size(ttm{i},1);
0043 m=size(ttm{i},2);
0044 rm1=size(ttm{i},3);
0045 rm2=size(ttm{i},4);
0046 sttm{d+1}(i)=rm2;
0047 sttm{d+2}(i)=n;
0048 sttm{i}=reshape(permute(ttm{i},[1,4,3,2]),[n*rm2*rm1,m]);
0049 sttm{i}(find(abs(sttm{i})/max(max(abs(sttm{i})))<cuttol))=0;
0050 sttm{i}=sparse(sttm{i});
0051 end
0052
0053 end