MATLAB程序运行出错

2024-05-20

1. MATLAB程序运行出错

述方法描述中,采用如下实例程序进行说明。
%实例程序
[xx,yy]
=
meshgrid(1:20,1:20);
d
=
sqrt(xx.^2+yy.^2);
zz
=
peaks(10);
out
=
d
+
zz;
surf(out);shading
interp;
MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因
在错误信息中,查找源程序中错误代码的行数,点击行数链接,可以直接定位错误语句
错误语句定位后,自动跳转到代码编辑器中,在代码编辑器中通过光标标识错误代码的位置
确定错误语句后,通过F12快捷键在错误语句处设定断点
断点设定完成后,通过F5快捷键重新执行程序,程序会在断点处停止运行,进入调试状态
在调试状态下有多个步骤可以查找程序问题的原因。
(1)将鼠标放置在变量上方,这时代码编辑器会自动显示变量的类型、维数、各维大小等信息,根据此信息帮助程序员查找程序中变量错误原因。
在调试状态下有多个步骤可以查找程序问题的原因。
(2)将问题代码行复制到在MATLAB命令行中执行,重现错误。这样可以反复重新错误,而不中断程序运行,而且不用重新执行程序,提高调试效率。
在调试状态下有多种方法可以查找程序问题的原因。
(3)通过whos、size、help等命令协助确定错误原因。其中,whos命令可以查看当前工作区中变量列表,size可以确定某一变量的维数和各维大小,help可以确定某一操作符或函数的帮助信息。
如:
K>>
whos
Name
Size
Bytes
Class
Attributes
ans
1x2
16
double
d
20x20
3200
double
filename
1x60
120
char
xx
20x20
3200
double
yy
20x20
3200
double
zz
10x10
800
double
K>>
size(zz)
ans
=
10
10
K>>
size(d)
ans
=
20
20
K>>
help
+
plus
-
Addition
This
MATLAB
function
adds
arrays
A
and
B
and
returns
the
result
in
C.
C
=
A
+
B
C
=
plus(A,B)
plus
的参考页
另请参阅
cumsum,
minus,
sum,
uplus
名为
plus
的其他函数
finance/plus,
fixedpoint/plus,
symbolic/plus,
matlab/plus,
+,
symbolic/plus,
+,
matlab/+,
symbolic/+
K>>
10
仔细分析上述信息,最终确定MATLAB程序执行错误的原因。上述实例中,程序执行错误的原因为:变量a和变量zz的行数和列数不一致,不符合+操作符的要求。

MATLAB程序运行出错

2. Matlab程序错误原因是什么

  1
  下述方法描述中,采用如下实例程序进行说明。
  %实例程序
  [xx,yy] = meshgrid(1:20,1:20);
  d = sqrt(xx.^2+yy.^2);
  zz = peaks(10);
  out = d + zz;
  surf(out);shading interp;
  2
  MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因

  3
  在错误信息中,查找源程序中错误代码的行数,点击行数链接,可以直接定位错误语句

  4
  错误语句定位后,自动跳转到代码编辑器中,在代码编辑器中通过光标标识错误代码的位置

  5
  确定错误语句后,通过F12快捷键在错误语句处设定断点

  6
  断点设定完成后,通过F5快捷键重新执行程序,程序会在断点处停止运行,进入调试状态

  7
  在调试状态下有多个步骤可以查找程序问题的原因。
  (1)将鼠标放置在变量上方,这时代码编辑器会自动显示变量的类型、维数、各维大小等信息,根据此信息帮助程序员查找程序中变量错误原因。

  8
  在调试状态下有多个步骤可以查找程序问题的原因。
  (2)将问题代码行复制到在MATLAB命令行中执行,重现错误。这样可以反复重新错误,而不中断程序运行,而且不用重新执行程序,提高调试效率。

  9
  在调试状态下有多种方法可以查找程序问题的原因。
  通过whos、size、help等命令协助确定错误原因。其中,whos命令可以查看当前工作区中变量列表,size可以确定某一变量的维数和各维大小,help可以确定某一操作符或函数的帮助信息。

3. matlab提示错误

1、矩阵对应元素相乘应该用点乘.*
2、y和c1维度应该一致,否则无法将对应元素相乘
3、plot函数用错了
y=[0:0.02:50];c1=linspace(0,1,length(y)); % c1维度与y一致a1=1.73205081*120*(1.73205081/2*120+y);a2=2*(0.25*120*120+(1.73205081*120+y).*(1.73205081*120+y)); % 原来有错,另外后两项是平方,可以直接写成.^2a3=1.73205081*120*(y-1.73205081/2*120);a4=2*(0.25*120*120+(y-1.73205081*120).*(y-1.73205081*120)); % 同上c=a1./a2.*c1-a3./a4.*c1; % 同上plot(y,c1,y,c) % 原来plot函数参数不对grid on

matlab提示错误

4. matlab常见错误

1.Subscript indices must either be real positive integers or logicals
中文解释:下标索引必须是正整数类型或者逻辑类型
出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。


2.Undefined function or variable "U"
中文解释:函数或变量 U 没有定义
.出错原因及解决办法:可能变量名输入错误,仔细检查


3.Matrix dimensions must agree
中文解释:矩阵的维数必须一致
出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错用了矩阵运算符。matlab 通过“.”来区分矩阵运算和元素运算。
解决办法:自己调试一下程序,保证运算符两边的运算对象维数一致。


4.Function definitions are not permitted at the prompt or in scripts
中文解释:不能在命令窗口或者脚本文件中定义函数
出错原因:一旦在命令窗口写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m 文件中。关于脚本文件和 m 文件的区别请查阅 matlab 基础书。简言之:
1) 如果你写成 function 的形式,那么必须写在 m 文件中,且以 function 开头(即 function 语句前不能包含其他语句,所有语句必须放在 function 中,当然,function 的定义可以有多个,各 function 之间是并列关系,不能嵌套);
2) 如果你写成脚本的形式,则既可以写在命令窗口中,也可以写在 m 文件中,但两者均不能包含 function 语句(即不能进行函数的定义)
解决办法:新建一个 m   文件,然后再进行函数的定义


5.One or more output arguments not assigned during call to '...'
中文解释:在调用...函数过程中,一个或多个输出变量没有被赋值
出错原因:函数如果带有输出变量,则每个输出在返回的时候都必须被赋值。容易出现这个错误的两个地方是:在部分条件判断语句(如 if )中没有考虑到输出变量的返回值。
在循环迭代过程中部分变量的维数发生了变化。
解决办法:调试程序,仔细查看函数返回时各输出变量的值。更好的方法是:在条件判断或者执行循环之前对所使用的变量赋初值。


6.??? Index exceeds matrix dimensions.
中文解释:索引超出矩阵的范围
出错原因:在引用矩阵元素的时候,索引值超出矩阵应有的范围
解决办法:检查所定义数组的维数,和引用的范围。
.In an assignment   A(I) = B, the number of elements in B and I must be the same
中文解释:在赋值语句 A(I) = B 中,B 和 I 的元素个数必须相同
出错原因:I 和 B 的维数、大小不一样。这正如“把 5 个水果放到 6 个篮子”、或者“把 6 个水果放到 5 个篮子”,均无法实现
解决办法:自己设置断点调试一下,看看 I 和 B 的维数、大小是否相同,不同的话就要修改成两者一致

5. 为什么安装的MATLAB会运行不起呢?出现的错误如下。请各位高手指点哈。。非常感谢。

个人觉得的有可能的几个解决方法:
1、右键选择属性,兼容性选项卡。用兼容性模式运行,兼容性模式选择windows vista.(如不行的话尝试其它选项)

2、根据提示是java包无法识别。可能和jdk的版本,环境变量有问题。请在命令行输入 java -version,如果无法识别版本,请下载一个jdk1.6。

3、如果你的matlab是7.0的话,直接下个matlab2009a或者更高版本吧。。

为什么安装的MATLAB会运行不起呢?出现的错误如下。请各位高手指点哈。。非常感谢。

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

这段程序里面错误太多,很多地方莫名其妙:
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。
 
改后的代码如下(需要说明的是,除前两处错误为语法错误容易判断之外,后面三处错误都属于运行时错误,改动只是尽量猜测错误代码的可能目的是什么,但并不保证和作者的本意相同):
clearA=[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;endC=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;endG=[];G(1)=A(1);for i=2:10    G(i)=F(i)-F(i-1);endt1=2008:2012;t2=2008:2017;Gplot(t1,A,'o',t2,G) 
运行结果:

7. matlab程序出错,求帮助

s11与另外三个类型不同
所以数组s=[s11 s12;s21 s22];错误
应该是这里有问题:
v4=v10*(z1/10)^r;   %计算n米高处平均风速v2=v10*(z2/10)^r; c=10;               %指数衰减系数(取平均值)v1=zeros(2*N,1);v2=zeros(2*N,1);
改为
v4=v10*(z1/10)^r;   %计算n米高处平均风速v3=v10*(z2/10)^r; c=10;               %指数衰减系数(取平均值)v1=zeros(2*N,1);v2=zeros(2*N,1);......s22=2*pi*4*k.*v3.*v3.*x2*x2./m2./(1+x2*x2).^(4/3);就可以了
结果是
希望对你有帮助

matlab程序出错,求帮助

8. matlab报错怎么解决?

这个程序能运行,上面就是运行结果.