一个自编的matlab函数出错
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/15 21:34:41
一个自编的matlab函数出错
b=zeros(12,12);
t=0;
for m=1:365
if m==1||60||121||182||213||274||335
t=t+1;
for n=1:12
s=0;
for j=0:30
s=s+day(m+j,n);
end
s=s/31;
b(t,n)=s;
end
elseif m==91||152||244||305
t=t+1;
for n=1:12
s=0;
for j=0:29
s=s+day(m+j,n);
end
s=s/30;
b(t,n)=s;
end
elseif m==32
t=t+1;
for n=1:12
s=0;
for j=0:27
s=s+day(m+j,n);
end
s=s/28;
b(t,n)=s;
end
else continue;
end
end
报错说我第九行的程序要访问矩阵b(366,1),但是自己怎么分析都觉得只能到365啊,
b=zeros(12,12);
t=0;
for m=1:365
if m==1||60||121||182||213||274||335
t=t+1;
for n=1:12
s=0;
for j=0:30
s=s+day(m+j,n);
end
s=s/31;
b(t,n)=s;
end
elseif m==91||152||244||305
t=t+1;
for n=1:12
s=0;
for j=0:29
s=s+day(m+j,n);
end
s=s/30;
b(t,n)=s;
end
elseif m==32
t=t+1;
for n=1:12
s=0;
for j=0:27
s=s+day(m+j,n);
end
s=s/28;
b(t,n)=s;
end
else continue;
end
end
报错说我第九行的程序要访问矩阵b(366,1),但是自己怎么分析都觉得只能到365啊,
![一个自编的matlab函数出错](/uploads/image/z/18966285-45-5.jpg?t=%E4%B8%80%E4%B8%AA%E8%87%AA%E7%BC%96%E7%9A%84matlab%E5%87%BD%E6%95%B0%E5%87%BA%E9%94%99)
1、matlab中用“|”表示或而不是“||”
2、m==91||152||244||305这种语句的结果总是“真”,不恰当的的说,你可以认为是(m==91)|(152),由于后面的值是大于0的,因此结果总是对的,(m==91|m==152|m==244|m==305)才算稳妥
2、m==91||152||244||305这种语句的结果总是“真”,不恰当的的说,你可以认为是(m==91)|(152),由于后面的值是大于0的,因此结果总是对的,(m==91|m==152|m==244|m==305)才算稳妥