MATLAB向量分配中的奇怪故障

时间:2013-08-02 18:41:54

标签: arrays matlab vector while-loop variable-assignment

我有一段代码,其中我选择在给定阈值d / 2内以ds间隔的x值。这可能不是最有效的方法,但它除了我在这里提出的偶然的错误之外它工作得很好,我想保留原样的方法。但是,MATLAB似乎会切断此代码创建的向量的上端点。我的猜测是它有一些舍入错误,并没有达到上限。它可以正常工作,具有不同(但相同数量级)的d和ds值。

d=250e-9;
ds=1e-9;
xlim=0;

while xlim < ((d/2)-ds)
    xlim = xlim + ds;
end;

disp(xlim);

xlim返回为1.25e-7。然后,

xrel = -xlim:ds:xlim

显示xrel,从-1.25e-7开始到1.24e-7结束。顺便提一下,正好有250个值(我的代码后面我认为这是一个奇数值)。关于解决方案的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您输入:     格式很长

在执行此操作之前,您将看到xlim在您的程序之后不完全是1.25e-7。这是一种不好的方法,请执行以下操作:

xrel = -d/2:ds:d/2

这将为您提供251长度的向量,其值为-1.25e-7到1.25e-7。