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 
  • 20
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB写入数据的常见错误: 1. 文件路径错误,导致无法找到文件或者写入错误的位置。 解决办法:检查文件路径是否正确。 2. 数据类型不匹配,写入的数据类型与文件本身的数据类型不一致。 解决办法:确认写入数据类型与文件数据类型一致,或者在写入数据前进行类型转换。 3. 文件权限不足,导致无法写入数据。 解决办法:修改文件权限或者使用管理员权限进行操作。 4. 文件不存在,导致无法写入数据。 解决办法:创建文件或者确认文件已经存在。 Matlab常见错误解决办法归纳: 1. Undefined function or variable 这是因为Matlab找不到函数或变量的定义,通常是因为没有正确地加载或调用函数。 解决方法:检查函数或变量名是否正确、函数是否被正确地加载。 2. Index exceeds matrix dimensions 这是因为在访问矩阵或数组时,指定的索引超出了矩阵或数组的维度。 解决方法:检查索引值是否正确、矩阵或数组是否被正确地定义。 3. Out of memory 这是因为Matlab无法分配足够的内存来执行操作。 解决方法:关闭其他应用程序、释放内存、增加计算机的物理内存。 4. File not found 这是因为Matlab找不到指定的文件。 解决方法:检查文件路径是否正确、文件是否存在。 5. Input argument is not defined 这是因为函数调用时,输入参数未被正确地定义。 解决方法:检查输入参数是否正确、函数是否正确地定义。 6. Dimension mismatch 这是因为在进行矩阵或数组操作时,矩阵或数组的维度不匹配。 解决方法:检查矩阵或数组的维度是否正确、进行矩阵或数组的维度匹配操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值