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

📄 hair.m

📁 用matlab实现利用统计混沌方法解决非线性系统时间序列预测的问题
💻 M
字号:
function hair(filename,prot,curv,link);

if nargin<1,
        disp('you must specify a file in arg1 !');
        return;
end;
if nargin<2, prot = 1; end;
if nargin<3, curv = 1; end;
if nargin<4, link = 0; end;

% OUVERTURE DES FICHIERS

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

if prot>0,
        [pro,npro,dpro] = ld(strcat(filename,'.pro'));
        if npro*dpro==0, okpro=0; else, okpro=1; end;
        
        if curv>0,
                [crv,ncrv,temp] = ld(strcat(filename,'.crv'));
                if ncrv*temp==0, okcrv=0; else, okcrv=1; end;
        else,
                okcrv = 0;
        end;
        
        if link>0,
                [lnk,nlnk,temp] = ld(strcat(filename,'.lnk'));
                if nlnk*temp==0, oklnk=0; else, oklnk=1; end;
        else,
                oklnk = 0;
        end;
else
        okpro = 0;
        okcrv = 0;
        oklnk = 0;
end;

if okdat>0,
        [jrp,njrp,djrp] = ld(strcat(filename,'.jrp'));
        if njrp*djrp==0, okjrp=0; else, okjrp=1; end;
else,
        okjrp = 0;
end;

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

% erreur de proj/deproj bis
if okdat>0 & okjrp>0,
        hdat = zeros(naff,1);
        for k = 1:naff,
                if ddat==1,
                        hdat(k) = line([dat(k,1),jrp(k,1)]',[dat(k,1),jrp(k,1)]');
                elseif ddat==2,
                        hdat(k) = line([dat(k,1),jrp(k,1)]',[dat(k,2),jrp(k,2)]');
                else,
                        hdat(k) = line([dat(k,1),jrp(k,1)]',[dat(k,2),jrp(k,2)]',[dat(k,3),jrp(k,3)]');
                end;
                set(hdat(k),'Color',[1 0 0],'LineStyle','-');
        end;
end;
if okpro>0,
        hold on;
        if oklnk>0,
                hlnk = zeros(nlnk,1);
                for k=1:nlnk,
                        i = 1+lnk(k,1);
                        j = 1+lnk(k,2);
                        if dpro==1,
                                hlnk(k) = line([pro(i,1);pro(i,1);pro(j,1);pro(j,1);pro(i,1)],[pro(i,1);pro(j,1);pro(j,1);pro(i,1);pro(i,1)]);
                        elseif dpro==2,
                                hlnk(k) = line([pro(i,1);pro(j,1)],[pro(i,2);pro(j,2)]);
                        else,
                                hlnk(k) = line([pro(i,1);pro(j,1)],[pro(i,2);pro(j,2)],[pro(i,3);pro(j,3)]);
                        end;
                        set(hlnk(k),'Color',[0 1 0],'LineStyle',':');
                end;
        end;
        if okcrv>0,
                hcrv = zeros(ncrv,1);
                for k=1:ncrv,
                        i = 1+crv(k,1);
                        j = 1+crv(k,2);
                        if dpro==1,
                                hcrv(k) = line([pro(i,1);pro(i,1);pro(j,1);pro(j,1);pro(i,1)],[pro(i,1);pro(j,1);pro(j,1);pro(i,1);pro(i,1)]);
                        elseif dpro==2,
                                hcrv(k) = line([pro(i,1);pro(j,1)],[pro(i,2);pro(j,2)]);
                        else,
                                hcrv(k) = line([pro(i,1);pro(j,1)],[pro(i,2);pro(j,2)],[pro(i,3);pro(j,3)]);
                        end;
                        set(hcrv(k),'Color',[0 0 1],'LineStyle','--');
                end;
        end;
        if dpro==1,
                plot(pro(:,1),pro(:,1),'b.');
        elseif dpro==2,
                plot(pro(:,1),pro(:,2),'bo');
        else,
                plot3(pro(:,1),pro(:,2),pro(:,3),'bo');
        end;
end;
axis equal;
title('Hair Graph (Error Lines)');

⌨️ 快捷键说明

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