请看下两个相似代码,为何一个可行,另一个不行
clear;for i=10:10:90,x(i/10)=i; end
x
for i=0.1:0.1:0.9, x1(i*10)=i; end
x1
如上两个相似的代码,都是为了循环出现一个矩阵
为何i/10 可以运行,i*10的不能运行
[ 本帖最后由 ChaChing 于 2010-5-24 19:59 编辑 ] 这涉及到浮点小数在计算机中表示以及计算问题(在浮点计算体制下,有些小数是不能用有限二进制位数精确表示的),如果是整数运算结果还是整数没有这样的情况:
楼主试试下面代码:
>> isequal((0.1+0.2)*10,3)
ans =
0
第二种情况最好加个round:
for i=0.1:0.1:0.9
x1(round(i*10))=i;
end
x1
[ 本帖最后由 rocwoods 于 2010-5-24 15:17 编辑 ] 谢谢LS,发现了,确实是数据类型的问题
页:
[1]