clear
clc
datas = load('I:\.txt');%dsesr
s=load ('I:\txt');%sesr
percent=load('I:\percent.txt');%百分位数
typed=1;
d1=1; %为时间 从1开始
ddd=d1;
FD=zeros(1843,1540);%计算天数的长度
while(d<1843) %d一直在推进,while1
startd=d;
dd=d1;
typed=3;
while(typed==1||typed==3) % 内循环,while2
if(typed==1)
dd=ddd;
end
if(typed==3)
dd=d1;
end
while(datas(dd,1)<=percent(3,1))%while3
dd=dd+1;
for ddd=dd:1843
if (datas(ddd,1)>percent(3,1)) % 第一个条件
if(datas(ddd+1,1)<=percent(3,1))%第二个条件
if(s(ddd+2,1)<s(ddd,1))
ddd=ddd+1;%更新天
typed=1;% 内循环
break;
else
if(s(ddd,1)<=percent(1,1)&&mean(datas(1:ddd,1))<=percent(2,1))
while(sddd+1,1)<=percent(2,1))
ddd=ddd+1;%寻找终止结点
end
ddd=ddd+1;
duration=ddd-startd;
if(duration>3)
FD(startd:ddd,1)=1;
end
d1=ddd+1;%更新时间从截止点的下一天开始
end %第一种情况结束
typed=2;% 外循环
break;
end
else
if(s(ddd,1)<=percent(1,1)&&mean(datas(1:ddd,1))<=percent(2,1))
while(s(ddd+1,1)<=percent(1,1))
ddd=ddd+1;%寻找终止结点
end
ddd=ddd+1;
duration=ddd-startd;
if(duration>3)
FD(startd:ddd,1)=1;
end
d1=ddd+1;%更新时间
end%第二种情况结束
typed=2;% 外循环
break;
end
end
end%for 循环结束
end %while3结束
end %while2 循环结束
end
while(d<1843) %d一直在推进,while1
while循环前没有 d 这个变量
另外,代码的缩进很难阅读,参考下面:
clear
clc
datas = load('I:\.txt');%dsesr
s=load ('I:\txt');%sesr
percent=load('I:\percent.txt');%百分位数
typed=1;
d1=1; %为时间 从1开始
ddd=d1;
FD=zeros(1843,1540);%计算天数的长度
while(d<1843) %d一直在推进,while1
startd=d;
dd=d1;
typed=3;
while(typed==1||typed==3) % 内循环,while2
if(typed==1)
dd=ddd;
end
if(typed==3)
dd=d1;
end
while(datas(dd,1)<=percent(3,1))%while3
dd=dd+1;
for ddd=dd:1843
if (datas(ddd,1)>percent(3,1)) % 第一个条件
if(datas(ddd+1,1)<=percent(3,1))%第二个条件
if(s(ddd+2,1)<s(ddd,1))
ddd=ddd+1;%更新天
typed=1;% 内循环
break;
else
if(s(ddd,1)<=percent(1,1)&&mean(datas(1:ddd,1))<=percent(2,1))
while(sddd+1,1)<=percent(2,1))
ddd=ddd+1;%寻找终止结点
end
ddd=ddd+1;
duration=ddd-startd;
if(duration>3)
FD(startd:ddd,1)=1;
end
d1=ddd+1;%更新时间从截止点的下一天开始
end %第一种情况结束
typed=2;% 外循环
break;
end
else
if(s(ddd,1)<=percent(1,1)&&mean(datas(1:ddd,1))<=percent(2,1))
while(s(ddd+1,1)<=percent(1,1))
ddd=ddd+1;%寻找终止结点
end
ddd=ddd+1;
duration=ddd-startd;
if(duration>3)
FD(startd:ddd,1)=1;
end
d1=ddd+1;%更新时间
end%第二种情况结束
typed=2;% 外循环
break;
end
end
end%for 循环结束
end %while3结束
end %while2 循环结束
end