【发布时间】:2016-01-22 12:36:19
【问题描述】:
我在我的一个循环调用的matlab函数中使用meshgrid,特定的代码行如下(对不起,我不能在这里粘贴完整的代码)
rect
[m,n] = meshgrid(rect(1):rect(3),rect(2):rect(4));
size(m)
现在我正在打印 rect 和 size(m),在输出中显示为 ans 以及 meshgrid 代码。我在最后两次迭代下面发布
1) 第一个给出 size(m) 为 46x48 的尺寸是正确的尺寸,并且不会在我稍后进行的矩阵加法中引发错误。
2) 第二个显示 size(m) 为 46x47 的尺寸是错误的,尽管 rect 值表明不是这样。
rect =
119.9290 69.3807 166.9290 114.3807
ans =
46 48
rect =
120.0508 69.5380 167.0508 114.5380
ans =
46 47
Error using +
Matrix dimensions must agree.
现在我取同样的数字,在命令窗口做一个meshgrid,结果正确如下
>> [lm,kl] = meshgrid(120.0508:167.0508,69.5380:114.5380);
>> size(lm)
ans =
46 48
这个异常的原因可能是什么?
【问题讨论】:
-
使用
format long g;,然后再次显示两个矩形数组。您会发现它们之间存在细微差别,这就是为什么您会得到不同的meshgrid结果。默认情况下,MATLAB 最多显示 4 个小数点,因此您手动输入最多 4 个小数位的数字并不能完全捕获矩形中捕获的实际数字的全部精度。
标签: matlab