matlab 此上下文中不允许函数定义,错误: 此上下文中不允许函数定义。怎么办
这是我找一个例子,运行就出现错误,怎么回事
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 此上下文中不允许函数定义,错误: 此上下文中不允许函数定义。怎么办相关推荐
- find函数常见错误_终于找到你,查找函数,find必不可少
说起查找类的函数,一般大家想到的都是vlookup这些最常见的函数,而find函数,知名度就没那么高了,的确,光从find函数的功能来看,单兵做战能力的确是不强,但是,团队的力量,才是最强大的,虽然单 ...
- matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...
点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...
- matlab计算斜方差_Matlab求方差,均值,均方差,协方差的函数
1.均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组.mean(X,1)为列向量的均值,me ...
- python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义...
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...
- matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...
点击查看MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的具体信息 答:myfactorial = @(n) factorial(n) myfactorial = @(n) pro ...
- Matlab自学笔记四:调用函数基本方法、传递参数、函数工作区、命令语法、调用匿名函数
1.调用函数的基本方法 题目:创建函数y=x²+x+1 首先,使用上一篇的创建函数文件的方法(推荐先看上一篇:Matlab创建函数文件.函数语法定义.匿名函数.多元函数.局部函数等知识串联理解),创建 ...
- c语言 编程 函数声明,C语言编程开发中的函数声明与定义
函数功能的使用在许多编程开发语言中都是有不同的使用方法的,而今天我们就一起来了解一下,在C语言编程开发中的函数功能使用与定义. 对函数的"定义"和"声明"不是一 ...
- c语言choose函数怎么用,Excel Choose函数的使用方法,包含把数组和定义名称为作参数及与Match组合实现绩效或成绩评定实例...
在 Excel 中,Choose函数用于从值列表中选择索引号指定的值:它的索引号取值范围为 1 到 254.至少有一个最多只能有 254 个.Choose函数的索引号除用数字外,还可用数组.函数和公式 ...
- matlab定义双精度型变量_matlab里,怎样定义变量类型
好象直接使用就可以了,第一次出现就包含了定义 顺便把些命令弄给你看下 matlab命令 matlab commands and functions list A a abs 绝对值.模.字符的ASCI ...
最新文章
- 【2556】传说中的数据结构 sdutOJ
- mysql 5.5.修改库名_安全快速修改Mysql数据库名的5种方法
- oracle12版本无scott解决,Oracle12C中scott账户与表问题
- 女生适不适学习Java编程
- jpa mysql查找_jpa查找数据库最新一条消息
- redis.conf 配置详解
- Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程
- 045 Android Studio 常用应用
- NAB展会新闻:微软和媒体娱乐合作伙伴在Windows Azure平台上发展数字供应链解决方案...
- 哪些话你一开始不信,后来却深信不疑
- Mybatis-Plus 使用操作_1
- 计算机硬盘怎么优化,硬盘怎么优化_机械硬盘优化
- CABAC基于上下文的自适应二进制熵编码
- Windows Server 2012 安装MySQL服务器感悟
- 瓜瓜播放器android,瓜瓜视频播放器
- 防火墙 | 网络协议
- Java Web程序设计——JSP技术(一)
- matlab polyfit和polyval函数的使用
- activity多实例任务加签
- 简述算法和程序的区别并举例说明
热门文章
- vue 回车事件 失焦事件
- 小米计算机弹歌曲,趣味冷知识!小米的T9拨号键盘可以弹乐曲,没想到吧!快来试试!...
- R语言独立样本的 t 检验
- 用ros输出hello,world(c++版)
- ROS学习笔记02、ROS使用C++、Python来实现HelloWorld
- ECharts 使用xAxis.axisLine.lineStyle.color设置x坐标轴轴线颜色
- Excel — 动态图表(复选框实现动态图)
- 小米高通系列清串号打开写号端口工具_手机sn码序列号修改工具,高通串号永久写入!...
- 短信验证码接口的应用场景和优势
- 【MIME协议】base64编码与quoted-printable编码