www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/gui/gui_create_attractor_md.m
function gui_create_attractor_md % Create attractor using methods of delay % last modified 13.09.07 global TS ATTRACTOR GSD_GLOBALS str=TS.name; [selection,ok] = listdlg('PromptString','Select base data:',... 'SelectionMode','single','ListString',str); if ok X=TS.data(:,selection); time=TS.time; name=TS.name{selection}; else return end prompt = {'Enter embedding dimension:',... 'Enter delay (in samples):'}; dlg_title = 'Create attractor using method of delay'; num_lines= 1; def = {'5','1'}; answer = inputdlg(prompt,dlg_title,num_lines,def); if ~isempty(answer) Emb=str2num(answer{1}); delay=str2num(answer{2}); else return end ATTRACTOR.data=embed(X,delay,Emb); ATTRACTOR.time=time(1:length(ATTRACTOR.data(:,1))); for i=1:length(ATTRACTOR.data(1,:)) ATTRACTOR.name{i}=[name '_md' num2str(i)]; end GSD_GLOBALS.en_dis.attractorpresent=1; gui_en_dis; function Y=embed(x,delay,dimension); % last modified 15.12.04 L=dimension; N=length(x); K=N-delay*(L-1); %% K must be positive!!! if K<1 error('Wrong parameters. Cancelled'); return end Y=zeros(L,K); for i=1:L Y(i,:)=x(1+delay*(i-1):delay*(i-1)+K)'; end Y=Y';