MATLAB程序会提示未定义函数或变量x,怎么解决

function g(x); %定义函数gm(x)
for j=1:10
clc; %清屏,以使计算结果独立显示
format long; %设置计算精度
if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换
x=x';
end;
n=length(x); %取输入数据的样本量
z=0;
for i=1:n %计算累加值,并将值赋与矩阵be
z=z+x(i,:);
be(i,:)=z;
end
for i=2:n %对原始数列平行移位
y(i-1,:)=x(i,:);
end
for i=1:n-1 %计算数据矩阵B的第一列数据
c(i,:)=-0.5*(be(i,:)+be(i+1,:));
end
for j=1:n-1 %计算数据矩阵B的第二列数据
e(j,:)=1;
end
for i=1:n-1 %构造数据矩阵B
B(i,1)=c(i,:);
B(i,2)=e(i,:);
end
alpha=inv(B.'*B)*B.'*y; %计算参数α、μ矩阵
for i=1:n+1 %计算数据估计值的累加数列,如改n+1为n+m可预测后m-1个值
ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:);
end
var(1,:)=ago(1,:)
for i=1:n %如改n为n+m-1,可预测后m-1个值
var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值
end
for i=1:n
error(i,:)=var(i,:)-x(i,:); %计算残差
end
c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c
ago %显示输出预测值的累加数列
alpha %显示输出参数α、μ数列
var %显示输出预测值
error %显示输出误差
c %显示后验差的比值c
var=fix(var);
for i=2:11
x(i-1)=var(i);
end
end

情况一:符号变量

必须要定义,定义之后才可以使用。如下面的例子,未定义就会出错。符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点。

情况二:计算过程当中的存储数值的变量

可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值,并且注释,这样方便以后区分,避免混淆。

具体如下:

电脑常见问题解决

1、无法自动识别硬盘控制器

使用非正版的个别操作系统光盘,在安装系统时,容易出现此错误。原因是非正版光盘自动加载的硬盘控制器驱动不符合电脑自身需要的驱动。这种情况就建议换正版光盘安装操作系统。

2、手动更新错误的驱动程序

windows操作系统正常使用,但手动更新驱动程序把硬盘控制器的驱动程序更新错误,导致此故障。解决方法是进入windows系统高级菜单,选择最后一次的正常配置,即可正常进入系统。

3、bios设置变化后所导致

windows操作系统正常,但是由于某些原因,用户修改了bios设置,导致0x0000007b故障。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-16

你有没有给x赋值?没有的话,函数g(x)没法调用参数x就出错了。例如试试:

x = 1:10;
g(x)

追问

如果要把X=[103783 109170 115993 122737 131176 135192 135909 136184 140569 145531 150406 159431 183792 213456 235997 258676 280508 291448 306647 324939 348002 361732 375000];
在哪里改,详细点,不懂,谢谢了?

追答

你直接这样可以么?在命令行窗口输入:

x=[103783 109170 115993 122737 131176 135192 135909 136184 140569 145531 150406 159431 183792 213456 235997 258676 280508 291448 306647 324939 348002 361732 375000];
g(x)

追问

结果完全不符合啊,我这是要做这一列数据的GM(1,1)模型改进,基于时间序列的,大神要不帮帮我编一个

本回答被网友采纳
第2个回答  2017-08-28
自己看在flag拿来运算之前,是否有值。在出问题的语句上设断点,就能看到是否有值了

matlab未定义变量或函数
当在MATLAB中遇到"未定义函数或变量"的错误时,有以下步骤可以解决:首先,使用MATLAB的内置帮助功能来了解变量类型。通过在命令窗口输入"help class",可以查阅关于数据类型的说明。接着,尝试检查一个变量,如"a=123",通过输入"class(a)",并按回车键,你会看到变量a的数据类型为double。这是MATLAB中...

matlabgui中未定义函数或变量怎么办?
若搜索路径正确,但问题仍未解决,尝试在出错代码行前使用 `dbstop` 命令设置断点。这允许在程序运行到指定行时暂停执行,提供一个观察和调试的窗口。在断点处,可利用 `whos` 或 `who` 命令查看当前工作空间中的变量,确保相关变量已正确加载和定义。同时,利用 `lasterr` 命令可以获取上一次错误信息,...

MATLAB程序会提示未定义函数或变量x,怎么解决
情况一:符号变量 必须要定义,定义之后才可以使用。如下面的例子,未定义就会出错。符号变量定义方法例如: sym x 或者 syms x ,两者有区别也有共同点。情况二:计算过程当中的存储数值的变量 可以不必定义,随时需要,随时定义,但是有时候如果变量很多,那么最好提前声明,声明的时候,可以直接赋予0值...

MATLAB 未定义函数或变量怎么解决
1、首先在电脑中,打开matlab找到主页,如下图所示。2、然后在页面上方的选项中,找到预设,点击预设,弹出预设框。3、接着在打开的预设窗口中,找到颜色项,如下图所示。4、点击,找到下方的编程工具,如下图所示。5、这时在打开的右侧中,可以看到变量和函数的颜色选项。5、然后点击色块可以选择不同...

Matlab 为什么未定义函数或变量 急求!!!
matlab提示未定义函数或变量的解决办法:1、首先需要知道matlab中查2113看数据类型函数是class,可以先在命令行窗口中help class。2、在5261命令行窗口中输入“4102a=123 class(a)”。3、按回车1653键可以看到变量a的类型是double类型。4、输入“b='1234' class(b)”。5、按回车键之后,可以看到变量b...

matlab提示未定义函数或变量
matlab提示未定义函数或变量的解决办法:1、首先需要知道matlab中查2113看数据类型函数是class,可以先在命令行窗口中help class。2、在5261命令行窗口中输入“4102a=123 class(a)”。3、按回车1653键可以看到变量a的类型是double类型。4、输入“b='1234' class(b)”。5、按回车键之后,可以看到变量b...

MATLAB程序会提示未定义函数或变量x,怎么解决
说明你没有给num赋值或者说你工作区没有num这个向量或者这个值。

matlab一直说我未定义函数或变量x怎么办?
首先你这个函数写的是没问题,我感觉你的基础不足;简单来说,你需要输入一个实参;x=……然后调用你的函数ovfun(x);关于一些基本的教程,你可以关注个一匹大懒虫 里面有一些matlab基础视频教程 一般分为形参和实参;形参 全称为形式参数,一、函数中使用:形参出现在函数定义中,在整个函数体内都可以...

求问matlab中命令行显示“未定义函数或变量”该怎么解决?
题主的问题是在执行文件中,缺GPS的数据。所以题主应添加GPS的数据向量,即可。

matlab未定义函数或变量'var'如何解决?
1. 首先,确认是否正确安装了神经网络工具箱。如果没有安装,请下载并安装该工具箱。2. 如果已经安装了该工具箱,请确保正确添加了工具箱的路径。可以通过在MATLAB命令窗口中输入`addpath('path\/to\/toolbox')`命令来添加路径。需要将`path\/to\/toolbox`替换为神经网络工具箱的实际路径。3. 如果您已经...

相似回答