24小时热门版块排行榜    

查看: 616  |  回复: 3

踹踹桌子U

铜虫 (小有名气)

[求助] matlab数据类型的小疑问 已有2人参与

本人小白,,今天在用Matlab编程序的时候发现一个小问题,原程序比较长,在这里就不发过来了,,问题简单来说就是
>> L=0.6/0.1+1
L = 7.0000
>> zeros(L,3)
错误使用 zeros
Size 输入必须为整数。
>> zeros(7.0000,3)
ans =
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0
为什么变量L不是整数,而我如果让L=0.4/0.1+1,结果是5,是个整数???????????????是不是和Matlab对数据的计算方式有关系??
哪位大神顺路过来帮忙解释一下 谢谢谢谢了
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

踹踹桌子U

铜虫 (小有名气)

2楼2015-12-01 22:15:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jinnqy

木虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
踹踹桌子U: 金币+2, ★★★很有帮助 2015-12-03 18:36:07
>> L=0.6/0.1+1
L = 7.0000

L在matlab内存里,并不是严格等于7,有存储精度的问题!
字符型的数据才是最准确的sym(’7')
"Physicsislikesex:sure,itmaygivesomepracticalresults,butthat'snotwhywedoit.”——RichardP.Feynman
3楼2015-12-02 11:18:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
踹踹桌子U: 金币+3, ★★★很有帮助 2015-12-03 18:36:02
是有存储精度的问题!

你要是搞不清楚,就可以在求出来的结果取整。
L=0.6/0.1+1;
zeros(round(L),3)
round是四舍五入取整,还有很多取整函数自己百度一下。
没有极限,只有超越!
4楼2015-12-02 13:27:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 踹踹桌子U 的主题更新
信息提示
请填处理意见