回 帖 发 新 帖 刷新版面

主题:请版主帮忙 关于返回值是整数的一个简单又奇怪的问题

我编写了如下代码:
h=0.01;
hn=0.00001;
n=h/hn;
Y0=zeros(4,n+1);
size(Y0)
返回值却是:
Warning: Size vector should be a row vector with integer elements.
> In interger at 4

ans =

           4        1000
不知道matlab是怎么处理数据的?n+1明明是1001啊!请指点,谢谢!

回复列表 (共2个回复)

沙发

为了看清楚为什么这样,我们要将matlab的输出数据格式设置为long类型,整个程序如下:
format long
h=0.01;
hn=0.00001;
n=h/hn
可以得到
n =

    9.999999999999999e+002
可以看到相除后,得到的n不是整数,这就是为什么会出现下面的warning了。
要想没有warning,可以这样。因为zeros要求输入的行列的值都是整数,所以,我们可以加上转化就行了。

>>x=zeros(4,int16(n+1));

>> size(x)

ans =

           4        1001

板凳

谢谢1楼的帮助。计算机二进制计算的简单原理,没留心得~~~  非常谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册