matlab程序出现了错误,不知道哪里出错了

这样的程序clearsymsab;c=[ab]';A=[2.93.64.55.888.1];B=cumsum(A);n=length(A);fori=1:(n-1)c(i... 这样的程序
clearsyms a b ;c=[a b]';A=[2.9 3.6 4.5 5.88 8.1];B=cumsum(A);n=length(A);for i=1:(n-1)c(i)=(B(i)+B(i+1))/2;endD=A;D(1)=[];D=D';E=[-C;ones(1,n-1)];c=inv(E*E')*E*D;c=c';a=c(1);b=c(2);F=[];F[1]=A(1);for i=2:(n+10)F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;endG=[];G(1)=A(1);for i=2:(n+10)G(i)=F(i)-F(i-1);endt1=2008:2012;t2=2008:2017;Gplot(t1,A,'o',t2,G)
展开
 我来答
tianxiawulang
推荐于2016-04-18 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2639万
展开全部

这段程序里面错误太多,很多地方莫名其妙:

1、原代码第10行的圆括号误为全角,即“D(1)”应为“D(1)”;

2、原代码第16行的圆括号误为方括号,即“F[1]”应为“F(1)”;

3、原代码第12行的C未定义,不知道本意是什么,这里试着将其改为c;

4、原代码第2-3行定义符号变量基本上没有作用(因为代码的第8行和15行分别对变量进行了赋值),删掉。原来定义成符号变量的副作用有两个:

(1)c成了列向量,后面用到c的地方要注意转换;

(2)a、b、c都是符号变量,第18行的计算结果也是符号类型,无法保存到F中。

5、原代码第21行的循环,由于t2长度为10,要保证G的长度和t2相同才能画图,所以把n+10改为10。

 

改后的代码如下(需要说明的是,除前两处错误为语法错误容易判断之外,后面三处错误都属于运行时错误,改动只是尽量猜测错误代码的可能目的是什么,但并不保证和作者的本意相同):

clear
A=[2.9 3.6 4.5 5.88 8.1];
B=cumsum(A);
n=length(A);
for i=1:(n-1)
    c(i)=(B(i)+B(i+1))/2;
end
C=c;
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
F=[];F(1)=A(1);
for i=2:(n+10)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:10
    G(i)=F(i)-F(i-1);
end
t1=2008:2012;
t2=2008:2017;
G
plot(t1,A,'o',t2,G)

 

运行结果:

cdinten
2013-08-12 · TA获得超过6589个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1330万
展开全部
第10行:D=A;D(1)=[];
你的圆括号是中文输入法下面的,修改为英文输入环境下的圆括号再看看有没有其他错误?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式