📄 olssa.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 + -