matlab出现提示:usage might be invalid matlab syntax

已举报 回答 关注
matlab出现提示:usage might be invalid matlab syntax
问在线客服
扫码问在线客服
  • 回答数

    3

  • 浏览数

    8,923

3个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
%灰色预测
function gm(x0,m)
%定义函数 gm(x0,m),x0为原始数据,m为预测个数
n=length(x0);
x1=zeros(1,n);
x1(1)=x0(1);
for i=2:n
x1(i)=x1(i-1)+x0(i); %计算累加序列x1
end
%对原始数列平行移位并赋给 y
y(1:n-1)=x0(2:n);
y=y'; %将 y变成列向量
B=ones(n-1,2);
for i=1:n-1;
%计算数据矩阵B的第一列数据
B(i,1)=-0.5*(x1(i)+x1(i+1));
end
au=inv(B'*B)*B'*y;%计算参数 a,u 矩阵
a=au(1);
u=au(2);
t=u/a;
i=1:m+n;
ago(i+1)=(x0(1)-t).*exp(-a.*i)+t;
ago(1)=x0(1);
for j=n+m:-1:2
yc(j)=ago(j)-ago(j-1);
end
for i=2:n;
error(i)=yc(i)-x0(i); %计算残差值
end
c=std(error)/std(x0);
%计算后验差比
p=0;
for i=2:n
if(abs(error(i)-mean(error))<0.6745*std(x0))
p=p+1;
end
end
p=p/(n-1);
w1=min(abs(error));
w2=max(abs(error));
for i=1:n;
%计算关联度
w(i)=(w1+0.5*w2)./(abs(error(i))+0.5*w2);
end
w=sum(w)/(n-1); %
%% 绘图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x=1:n;
xs=2:n+m;
yn=yc(2:n+m);
plot(x,x0,'^r',xs,yn,'*-b');
% axis([2009+m,2014+m,1,10]); %x,y,(z)坐标范围
% plot([2009:n+2008],x0,'+',[2009:n+2008+m],yc,'*'); %
% grid on;
% xlabel('年份');
% ylabel('销量(mm)');
% title('销售量灰色模型预测拟和曲线');
% legend('实测值','预测值',4);
% fprintf('a,u值:')
% fprintf('%g ',au) %输出参数 a,u 的值
% fprintf('\n累加数列:\n')
% fprintf('%g ',ago) %输出累加数列 ago 的值
% fprintf('\n原始序列:\n')
% fprintf('%g ',x0) %输出原始序列值
% fprintf('\n预测:\n')
% fprintf('%g ',yc) %输出预测的值
% fprintf('\n残差:\n')
% fprintf('%g ',error) %输出残差的值
% fprintf('\n后验差比:\n')
% fprintf('%g',c) %输出后验差比的值
% fprintf('\n小误差概率:\n')
% fprintf('%g',p) %输出小误差概率的值
% fprintf('\n关联度:\n')
% fprintf('%g\n',w) %输出关联度 w
取消 评论
括号是中文的,都改成英文就好了。
取消 评论
你的yc处后面的括号是英文状态下的输入吗?看上去不是。
取消 评论
ZOL问答 > matlab出现提示:usage might be invalid matlab syntax

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?