0001 function disp(tt,name,varargin)
0002
0003
0004 disp_mode_sizes=false;
0005 for i=1:2:length(varargin)-1
0006 switch lower(varargin{i})
0007 case 'modes'
0008 disp_mode_sizes=varargin{i+1};
0009 otherwise
0010 error('Unrecognized option: %s\n',varargin{i});
0011 end
0012 end
0013
0014 if ~exist('name','var')
0015 name = 'ans';
0016 end
0017 fprintf('%s is a QTT-tucker tensor: \n',name);
0018 fprintf('Tucker ranks: \n');
0019 sz=size(tt.core);
0020 rk=rank(tt.core);
0021 for i=1:tt.dphys-1
0022 fprintf('%d-',sz(i));
0023 end
0024 fprintf('%d\n',sz(tt.dphys));
0025 fprintf('TT-ranks for the core: \n');
0026 for i=1:tt.dphys
0027 fprintf('%d-',rk(i));
0028 end
0029 fprintf('%d\n',rk(tt.dphys+1));
0030 tk=tt.tuck;
0031 fprintf('TT-ranks/mode sizes for the factors: \n');
0032 for i=1:tt.dphys
0033 di=ndims(tk{i});
0034 ri=rank(tk{i});
0035 ni=size(tk{i});
0036 fprintf('Factor %d: ',i);
0037 for j=1:di
0038 fprintf('%d-',ri(j));
0039 end
0040 fprintf('%d\n',ri(di+1));
0041 if ( disp_mode_sizes )
0042 fprintf('Modes : ');
0043 for j=1:di-1
0044 fprintf('%d-',ni(j));
0045 end
0046 fprintf('%d\n',ni(di));
0047 end
0048 end
0049
0050
0051
0052
0053
0054