作业帮 > 综合 > 作业

帮忙改一下matlab语句,一直说第二个else 错误

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/01 13:36:09
帮忙改一下matlab语句,一直说第二个else 错误
function[s]=gf_sum(A)
s=A(1);
for i=2:100
a=fix(s/x)+fix(A(i)/x);
b=mod(s,x)+mod(A(i),x);
if(a>0)
if(b>x)
c=fix(a/x)+fix(b/x);
d=mod(a,x)+mod(b,x);
if(c>0)
e=fix(c/x)+fix(d/x);
f=mod(c,x)+mod(d,x);
s=e*x+f;
else
s=c*x+d;
break
else
g=mod(fix(a/x),x);
s=g*x+b;
break
else
s=a*x+b;
end
end
end
x=5;A =
Columns 1 through 24
11 13 9 14 11 11 12 8 8 9 11 13 7 7 16 9 9 12 8 13 7 8 12 12
Columns 25 through 50
11 12 13 9 13 14 17 12 16 9 4 13 9 13 8 8 11 13 6 11 6 16 11 12 7 8 12
%end的地方放的有点问题,我稍微改了下你的程序,你看下是你想要的吗
% function[s]=gf_sum(A)
clc;clear;
x=5;
A=[ 11 13 9 14 11 11 12 8 8 9 11 13 7 7 16 9 9 12 8 13 7 8 12 12 11 12 13 9 13 14 17 12 16 9 4 13 9 13 8 8 11 13 6 11 6 16 11 12 7 8 12];
% A=rand(1,200);
s=A(1);
for i=2:length(A)
a=fix(s/x)+fix(A(i)/x);
b=mod(s,x)+mod(A(i),x);
if(a>0)
c=fix(a/x)+fix(b/x);
d=mod(a,x)+mod(b,x);
if(c>0)
e=fix(c/x)+fix(d/x);
f=mod(c,x)+mod(d,x);
s=e*x+f;
else
s=c*x+d;
break
end
end
if(b>x)
g=mod(fix(a/x),x);
s=g*x+b;
break
else
s=a*x+b;
end
end
再问: x=5; A = Columns 1 through 24 11 13 9 14 11 11 12 8 8 9 11 13 7 7 16 9 9 12 8 13 7 8 12 12
再答: 你程序里的循环是2:100,而A的数据只给了5个,所以把循环改成 for i=2:length(A)