我是靠谱客的博主 迷人绿草,最近开发中收集的这篇文章主要介绍Matlab常见错误及解决办法归纳,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Matlab常见错误及解决办法归纳 
1.Subscript indices must either be real positive integers or logicals   
中文解释:下标索引必须是正整数类型或者逻辑类型   

出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。   

解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。$ ]$ m8 A. T9 c$ i8 W  

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  

中文解释:索引超出矩阵的范围  
出错原因:在引用矩阵元素的时候,索引值超出矩阵应有的范围 解决办法:检查所定义数组的维数,和引用的范围。  
7.In an assignment A(I) = B, the number of elements in B and I must be the same     require.async(['wkcommon:widget/ui/lib/sio/sio.js'], function(sio) { var url = 'https://cpro.baidustatic.com/cpro/ui/c.js'; sio.callByBrowser( url, function () { BAIDU_CLB_fillSlotAsync('u2845605','cpro_u2845605'); } ); });    
void function(e,t){for(var n=t.getElementsByTagName("img"),a=+new Date,i=[],o=function(){this.removeEventListener&&this.removeEventListener("load",o,!1),i.push({img:this,time:+new Date})},s=0;s< n.length;s++)!function(){var e=n[s];e.addEventListener?!e.complete&&e.addEventListener("load",o,!1):e.attachEvent&&e.attachEvent("onreadystatechange",function(){"complete"==e.readyState&&o.call(e,o)})}();alog("speed.set",{fsItems:i,fs:a})}(window,document);

中文解释:在赋值语句 A(I) = B 中,B 和 I 的元素个数必须相同  

出错原因:I 和 B 的维数、大小不一样。这正如“把 5 个水果放到 6 个篮子”、或者“把 6 个水果放到 5 个篮子”,均无法实现  解决办法:自己设置断点调试一下,看看 I 和 B 的维数、大小是否相同,不同的话就要修改成两者一致 
 

8 Subscripted assignment dimension mismatch 

中文解释:下标赋值尺寸不匹配 

出错原因:一般是等号两边格式不一样,如右边是数组左边是数字 

解决办法:看看等号左右两边的数据类型,尤其是经过运算后的数据类型一定要相同。 

9 Attempted to access (109,3); index must be a positive integer or logical. 

中文解释:索引必须是正整数或逻辑值 

出错原因:一般是由于浮点计算时间上的浮点误差造成的,比如t/dt不一定是正整数,会存在很小的误差。 
解决办法:可以采用round(a):四舍五入,比如:round(pi)=3;ceil(a):向上取整,比如:ceil(pi)=4;floor(a):向下取整,比如:floor(pi)=3 
  

10.设A为矩阵,用size(A,i)求矩阵的行数和列数。其中i=1或2.行数用1,列数用2 

11.

 从函数关系看,使用二次拟合为宜 
 % 原始数据 
x=[0.4,0.6,0.8,1.0,1.2,1.4]; y=[0.15,0.21,0.39,0.55,0.78,1.07]; % 二次拟合 p=polyfit(x,y,2) % 绘图比较 
plot(x,y,'.-',x,polyval(p,x),'r:o') 
12  line([.3 .7],[.4 .9],[1 1],'Marker','*','LineStyle','-')   
line([.3 .7],[.4 .9],[1 1],'Marker','.','LineStyle','-') 13  A=[1,2,3,4,5;2,3,4,6,2;2,3,2,3,4]; 
for i=1:3 
    A(i,:)=A(i,:)-mean(A(i,:))*ones end 14 

最后

以上就是迷人绿草为你收集整理的Matlab常见错误及解决办法归纳的全部内容,希望文章能够帮你解决Matlab常见错误及解决办法归纳所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部