这是我找一个例子,运行就出现错误,怎么回事

x = [5999,5903,5848,5700,7884];gm1(x);  %测试数据

%二次拟合预测GM(1,1)模型

function  gmcal=gm1(x)

sizexd2 = size(x,2);

%求数组长度

k=0;

for y1=x

k=k+1;

if k>1

x1(k)=x1(k-1)+x(k);

%累加生成

z1(k-1)=-0.5*(x1(k)+x1(k-1));

%z1维数减1,用于计算B

yn1(k-1)=x(k);

else

x1(k)=x(k);

end

end

%x1,z1,k,yn1

sizez1=size(z1,2);

%size(yn1);

z2 = z1';

z3 = ones(1,sizez1)';

YN = yn1';   %转置

%YN

B=[z2 z3];

au0=inv(B'*B)*B'*YN;

au = au0';

%B,au0,au

afor = au(1);

ufor = au(2);

ua = au(2)./au(1);

%afor,ufor,ua

%输出预测的  a u 和 u/a的值

constant1 = x(1)-ua;

afor1 = -afor;

x1t1 = 'x1(t+1)';

estr = 'exp';

tstr = 't';

leftbra = '(';

rightbra = ')';

%constant1,afor1,x1t1,estr,tstr,leftbra,rightbra

strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+',leftbra,num2str(ua),rightbra)

%输出时间响应方程

%******************************************************

%二次拟合

k2 = 0;

for y2 = x1

k2 = k2 + 1;

if k2 > k

else

ze1(k2) = exp(-(k2-1)*afor);

end

end

%ze1

sizeze1 = size(ze1,2);

z4 = ones(1,sizeze1)';

G=[ze1' z4];

X1 = x1';

au20=inv(G'*G)*G'*X1;

au2 = au20';

%z4,X1,G,au20

Aval = au2(1);

Bval = au2(2);

%Aval,Bval

%输出预测的  A,B的值

strcat(x1t1,'=',num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,'+',leftbra,num2str(Bval),rightbra)

%输出时间响应方程

nfinal = sizexd2-1 + 1;

%决定预测的步骤数5  这个步骤可以通过函数传入

%nfinal = sizexd2 - 1 + 1;

%预测的步骤数 1

for  k3=1:nfinal

x3fcast(k3) = constant1*exp(afor1*k3)+ua;

end

%x3fcast

%一次拟合累加值

for  k31=nfinal:-1:0

if k31>1

x31fcast(k31+1) = x3fcast(k31)-x3fcast(k31-1);

else

if k31>0

x31fcast(k31+1) = x3fcast(k31)-x(1);

else

x31fcast(k31+1) = x(1);

end

end

end

x31fcast

%一次拟合预测值

for  k4=1:nfinal

x4fcast(k4) = Aval*exp(afor1*k4)+Bval;

end

%x4fcast

for  k41=nfinal:-1:0

if k41>1

x41fcast(k41+1) = x4fcast(k41)-x4fcast(k41-1);

else

if k41>0

x41fcast(k41+1) = x4fcast(k41)-x(1);

else

x41fcast(k41+1) = x(1);

end

end

end

x41fcast,x

%二次拟合预测值

%***精度检验p C************//

k5 = 0;

for y5 = x

k5 = k5 + 1;

if k5 > sizexd2

else

err1(k5) = x(k5) - x41fcast(k5);

end

end

%err1

%绝对误差

xavg = mean(x);

%xavg

%x平均值

err1avg = mean(err1);

%err1avg

%err1平均值

k5 = 0;

s1total = 0 ;

for y5 = x

k5 = k5 + 1;

if k5 > sizexd2

else

s1total = s1total + (x(k5) - xavg)^2;

end

end

s1suqare = s1total ./ sizexd2;

s1sqrt = sqrt(s1suqare);

%s1suqare,s1sqrt

%s1suqare  残差数列x的方差  s1sqrt 为x方差的平方根S1

k5 = 0;

s2total = 0 ;

for y5 = x

k5 = k5 + 1;

if k5 > sizexd2

else

s2total = s2total + (err1(k5) - err1avg)^2;

end

end

s2suqare = s2total ./ sizexd2;

%s2suqare   残差数列err1的方差S2

Cval = sqrt(s2suqare ./ s1suqare);

Cval

%nnn = 0.6745 * s1sqrt

%Cval  C检验值

k5 = 0;

pnum = 0 ;

for y5 = x

k5 = k5 + 1;

if abs( err1(k5) - err1avg ) < 0.6745 * s1sqrt

pnum = pnum + 1;

%ppp = abs( err1(k5) - err1avg )

else

end

end

pval = pnum ./ sizexd2;

pval

%p检验值

%arr1 = x41fcast(1:6)

matlab 此上下文中不允许函数定义,错误: 此上下文中不允许函数定义。怎么办相关推荐

  1. find函数常见错误_终于找到你,查找函数,find必不可少

    说起查找类的函数,一般大家想到的都是vlookup这些最常见的函数,而find函数,知名度就没那么高了,的确,光从find函数的功能来看,单兵做战能力的确是不强,但是,团队的力量,才是最强大的,虽然单 ...

  2. matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...

    点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...

  3. matlab计算斜方差_Matlab求方差,均值,均方差,协方差的函数

    1.均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组.mean(X,1)为列向量的均值,me ...

  4. python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义...

    复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...

  5. matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...

    点击查看MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的具体信息 答:myfactorial = @(n) factorial(n) myfactorial = @(n) pro ...

  6. Matlab自学笔记四:调用函数基本方法、传递参数、函数工作区、命令语法、调用匿名函数

    1.调用函数的基本方法 题目:创建函数y=x²+x+1 首先,使用上一篇的创建函数文件的方法(推荐先看上一篇:Matlab创建函数文件.函数语法定义.匿名函数.多元函数.局部函数等知识串联理解),创建 ...

  7. c语言 编程 函数声明,C语言编程开发中的函数声明与定义

    函数功能的使用在许多编程开发语言中都是有不同的使用方法的,而今天我们就一起来了解一下,在C语言编程开发中的函数功能使用与定义. 对函数的"定义"和"声明"不是一 ...

  8. c语言choose函数怎么用,Excel Choose函数的使用方法,包含把数组和定义名称为作参数及与Match组合实现绩效或成绩评定实例...

    在 Excel 中,Choose函数用于从值列表中选择索引号指定的值:它的索引号取值范围为 1 到 254.至少有一个最多只能有 254 个.Choose函数的索引号除用数字外,还可用数组.函数和公式 ...

  9. matlab定义双精度型变量_matlab里,怎样定义变量类型

    好象直接使用就可以了,第一次出现就包含了定义 顺便把些命令弄给你看下 matlab命令 matlab commands and functions list A a abs 绝对值.模.字符的ASCI ...

最新文章

  1. 【2556】传说中的数据结构 sdutOJ
  2. mysql 5.5.修改库名_安全快速修改Mysql数据库名的5种方法
  3. oracle12版本无scott解决,Oracle12C中scott账户与表问题
  4. 女生适不适学习Java编程
  5. jpa mysql查找_jpa查找数据库最新一条消息
  6. redis.conf 配置详解
  7. Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程
  8. 045 Android Studio 常用应用
  9. NAB展会新闻:微软和媒体娱乐合作伙伴在Windows Azure平台上发展数字供应链解决方案...
  10. 哪些话你一开始不信,后来却深信不疑
  11. Mybatis-Plus 使用操作_1
  12. 计算机硬盘怎么优化,硬盘怎么优化_机械硬盘优化
  13. CABAC基于上下文的自适应二进制熵编码
  14. Windows Server 2012 安装MySQL服务器感悟
  15. 瓜瓜播放器android,瓜瓜视频播放器
  16. 防火墙 | 网络协议
  17. Java Web程序设计——JSP技术(一)
  18. matlab polyfit和polyval函数的使用
  19. activity多实例任务加签
  20. 简述算法和程序的区别并举例说明

热门文章

  1. vue 回车事件 失焦事件
  2. 小米计算机弹歌曲,趣味冷知识!小米的T9拨号键盘可以弹乐曲,没想到吧!快来试试!...
  3. R语言独立样本的 t 检验
  4. 用ros输出hello,world(c++版)
  5. ROS学习笔记02、ROS使用C++、Python来实现HelloWorld
  6. ECharts 使用xAxis.axisLine.lineStyle.color设置x坐标轴轴线颜色
  7. Excel — 动态图表(复选框实现动态图)
  8. 小米高通系列清串号打开写号端口工具_手机sn码序列号修改工具,高通串号永久写入!...
  9. 短信验证码接口的应用场景和优势
  10. 【MIME协议】base64编码与quoted-printable编码