⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nr.m

📁 用matlab实现利用统计混沌方法解决非线性系统时间序列预测的问题
💻 M
字号:
function nr(filename);
if nargin<1,
        disp('you must specify a file in arg1 !');
        return;
end;

% OUVERTURE DES FICHIERS

[dat,ndat,idim] = ld(strcat(filename,'.dat'));
if ndat*idim==0, okdat=0; else, okdat=1; end;

[inn,ninn,idim] = ld(strcat(filename,'.inn'));
if ninn*idim==0, okinn=0; else, okinn=1; end;

[lnk,nlnk,temp] = ld(strcat(filename,'.lnk'));
if nlnk*temp==0, oklnk=0; else, oklnk=1; end;
lnk = lnk(2*ninn+1:nlnk,:);
nlnk = (nlnk-2*ninn)/5;

[onn,nonn,odim] = ld(strcat(filename,'.onn'));
if nonn*odim==0, okonn=0; else, okonn=1; end;

[prj,nprj,odim] = ld(strcat(filename,'.prj'));
if nprj*odim==0, okprj=0; else, okprj=1; end;

if ninn ~= nonn,
        disp('#rows not equal for inn and onn');
        return;
end;

% AFFICHAGE

% restriction
if ndat>10000, naff=10000; else, naff=ndat; end;

% donnees initiales
subplot(2,1,1);
if okdat==1,
        if idim==1,
                plot(dat(1:naff,1),dat(1:naff,1),'r.');
        elseif idim==2,
                plot(dat(1:naff,1),dat(1:naff,2),'r.');        
        else,
                plot3(dat(1:naff,1),dat(1:naff,2),dat(1:naff,3),'r.');
        end;
end;
if oklnk==1 & okinn==1,
        hold on;
        for k=1:nlnk,
                i = lnk(5*k-4)+1;
                j = lnk(5*k-2)+1;
                if idim==1,
                        plot([inn(i,1);inn(i,1);inn(j,1);inn(j,1);inn(i,1)],[inn(i,1);inn(j,1);inn(j,1);inn(i,1);inn(i,1)],'b-');		
                elseif idim==2,
                        plot([inn(i,1);inn(j,1)],[inn(i,2);inn(j,2)],'b-');
                else,
                        plot3([inn(i,1);inn(j,1)],[inn(i,2);inn(j,2)],[inn(i,3);inn(j,3)],'b-');
                end;
        end;
        if idim==1,
                plot(inn(:,1),inn(:,1),'b.');
        elseif idim==2,
                plot(inn(:,1),inn(:,2),'bo');
        else,
                plot3(inn(:,1),inn(:,2),inn(:,3),'bo');
        end;
end;
axis('equal');
title('Initial Data & Network');

% donnees projetees
subplot(2,1,2);
if okprj==1,
        if odim==1,
                plot(prj(1:naff,1),prj(1:naff,1),'r.');
        elseif odim==2,
                plot(prj(1:naff,1),prj(1:naff,2),'r.');
        else,
                plot3(prj(1:naff,1),prj(1:naff,2),prj(1:naff,3),'r.');
        end;
end;
if oklnk==1 & okonn==1,
        hold on;
        for k=1:nlnk,
                i = lnk(5*k-4)+1;
                j = lnk(5*k-2)+1;
                if odim==1,
                        plot([onn(i,1);onn(i,1);onn(j,1);onn(j,1);onn(i,1)],[onn(i,1);onn(j,1);onn(j,1);onn(i,1);onn(i,1)],'b-');
                elseif odim==2,
                        plot([onn(i,1);onn(j,1)],[onn(i,2);onn(j,2)],'b-');
                else,
                        plot3([onn(i,1);onn(j,1)],[onn(i,2);onn(j,2)],[onn(i,3);onn(j,3)],'b-');
                end;
                hold on;
        end;
        if odim==1,
                plot(onn(:,1),onn(:,1),'b.');
        elseif odim==2,
                plot(onn(:,1),onn(:,2),'bo');
        else,
                plot3(onn(:,1),onn(:,2),onn(:,3),'bo');
        end;
end;
axis('equal');
title('Projected Data & Network');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -