作业帮 > 综合 > 作业

matlab 出错 Warning:Rank deficient,rank = 38,tol = 6.841474e-1

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 11:00:16
matlab 出错 Warning:Rank deficient,rank = 38,tol = 6.841474e-11.
clear
>> x=-200:0.3:200;y=-200:0.1:200;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*Y/sqrt(X.*X+Y.*Y);
Warning:Rank deficient,rank = 38,tol = 6.841474e-11.
这是代码..
这是把数值改小了
x=-100:0.3:100;y=-100:0.1:100;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*Y/sqrt(X.*X+Y.*Y);
Warning:Rank deficient,rank = 35,tol = 1.710369e-11.
又改小了
>> x=-50:0.3:50;y=-50:0.1:50;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*Y/sqrt(X.*X+Y.*Y);
Warning:Rank deficient,rank = 32,tol = 4.283936e-12.
我想知道这是因为数值太大了吗?提错是根据什么提示的...rank和tol都代表了什么
这只是警告,不是报错
实际上是计算矩阵相除的时候,因为计算出现奇异时,发出的警告
rank是矩阵的秩,tol是误差
不过从你的代码看,确实是错了
你的原来意思应该是
Z=X.*Y./sqrt(X.*X+Y.*Y);
|
这里应该有个点
计算的是矩阵对应位置元素的除法运算
因为缺少了一个.所以变成了矩阵除法
这是最常见的错误,在乘、除、乘方中经常会少了一点导致错误