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

📄 olssa.m

📁 自己实现的一种数据流上的分段算法
💻 M
字号:
%% Talk about OLS

%% prepare
leng = length(x1); % 获得数据长度
beg=1;
begnum = beg        ;% 设置样本开始位置
endnum = beg        ;% 设置终结位置
setend = 100     ; % 设置分段长度
p = 1;
segma =1;
t=1;

%% segment
for jj=1:1:10,
    t=1;
    setend=100;
    jj
for ti=1:1:10,
    ti
    begnum=beg;
    endnum=beg;
    setend=setend+100;
    tic
while endnum < setend ,
    begnum=endnum;
    Seg(t)=begnum;
    t = t+1;
    while endnum < setend,
        if(endnum-begnum+1 > 3)
            the = getF( x1( begnum:endnum,:),p);,
        else
           the = 0;,
        end
        if(the > segma)
            break,
        end
        endnum = endnum+1;,
    end
end
    t2(ti,jj)=toc;,
end,
end

%% plot
Seg(t)=setend+1;
sum=0;
hold on
for i=1:+1:t-1,
    pre(1)=Seg(i);
    pre(2)=Seg(i+1)-1;
    x0=pre(1);
    xt=pre(2);
    plot( xt, x1(xt,2) ,'+')
    if(p==1)
        temp=polyfit(x1(x0:xt,1),x1(x0:xt,2),1);
        pre2(1)=temp(1)*pre(1)+temp(2);
        pre2(2)=temp(1)*pre(2)+temp(2);
        for i=x0:+1:xt,
            sum=sum+(temp(1)*i+temp(2)-x1(i,2))^2;,
        end
        plot(pre,pre2,'LineWidth',2),
    end
    if(p==2)
        [temp,S,mu]=polyfit(x1(x0:xt,1),x1(x0:xt,2),2);
        tx=(x1(x0:xt,1)-mu(1))/mu(2);
        ty=tx.^2*temp(1)+tx*temp(2)+temp(3);
        for i=x0:+1:xt,
            sum=sum+(ty(i-x0+1)-x1(i,2))^2;,
        end
        plot(x1(x0:xt,1),ty,'LineWidth',2),      
    end 
end
plot( x1(2001:2100,1),x1(2001:2100,2),'r:' )

⌨️ 快捷键说明

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