24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1542  |  回复: 7

xpk250

新虫 (初入文坛)


[交流] 【求助】MTALAB导入数据的精度。。。

小弟使用MATLAB从excel导入数据,excel里面的数据是小数点后十二位的科学计数法,但是导入以后MATLAB默认的是双精度,由于计算需要,不能使用双精度,求各位大虾指点解决办法。。。
回复此楼

» 猜你喜欢

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

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

sudo

木虫 (正式写手)


★ ★
微尘、梦想(金币+2): 谢谢回复…… 2011-04-12 15:08:18
xpk250(金币+1): 2011-05-20 17:15:39
MATLAB基本类型中浮点数最高也就双精度

你确认需要精确到十进制浮点后的第12位?这个必要性请先想想,如果误差允许,用双精度就可以

如果确实有这个必要,实现的方法比较麻烦,还得自己定义运算了,就是像那些“大数算法”一样,加减乘除都要重新实现一遍(嗯,可能不用像大数算法那么麻烦,用int64表示数据,再用一个int32表示指数...不过总之还得自己实现吧)

[ Last edited by sudo on 2011-4-12 at 14:26 ]
2楼2011-04-12 14:22:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微尘、梦想(金币+1): 谢谢参与…… 2011-04-13 15:32:38
引用回帖:
Originally posted by xpk250 at 2011-04-12 14:10:54:
小弟使用MATLAB从excel导入数据,excel里面的数据是小数点后十二位的科学计数法,但是导入以后MATLAB默认的是双精度,由于计算需要,不能使用双精度,求各位大虾指点解决办法。。。

双精度最多可以到小数点后 15 位还是多少来着,不比十二位更精确?

如果你觉得 15 位大多了,大可以 round 啥的啊……
3楼2011-04-12 14:42:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)



jjdg(金币+1): 感谢讲解 2011-04-13 01:19:59
引用回帖:
Originally posted by snoopyzhao at 2011-04-12 14:42:18:
双精度最多可以到小数点后 15 位还是多少来着,不比十二位更精确?

如果你觉得 15 位大多了,大可以 round 啥的啊……

嗯,这是一个误区

http://en.wikipedia.org/wiki/Dou ... oating-point_format

虽然IEEE标准之双精度尾数有52位,折算成十进制约为

2^(-52) = 2.22 * 10^(-16)

也就是你说的精确到“15位”

其实不然,这个二进制到十进制的转换过程使得对于不同数字的精度不同。举个例子来说,双精度能精确表达2^(-52)这个数,却只能近似表达0.1这个数

这个问题很多教科书描述的都不严谨的,嗯=,=

因为这个原因,在C#里面引入了decimal这个数据类型,来满足十进制小数的高精度需求
http://msdn.microsoft.com/zh-cn/library/364x0z75(v=vs.80).aspx

不知道楼主的需求是什么呢,一不小心可能扯远了,呵呵呵
4楼2011-04-12 14:54:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xpk250

新虫 (初入文坛)


引用回帖:
Originally posted by sudo at 2011-04-12 14:54:15:
嗯,这是一个误区

http://en.wikipedia.org/wiki/Dou ... oating-point_format

虽然IEEE标准之双精度尾数有52位,折算成十进制约为

2^(-52) = 2.22 * 10^(-16)

也就是你说的 ...

数据要求高。。。不能只用到小数点后5位啊。。。我只是要导入到数据在显示和运算的时候能精确到小数点后12位。。。
5楼2011-04-12 16:32:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


引用回帖:
Originally posted by xpk250 at 2011-04-12 16:32:18:
数据要求高。。。不能只用到小数点后5位啊。。。我只是要导入到数据在显示和运算的时候能精确到小数点后12位。。。

根据你的描述,可能你只是关注小数的“显示”的问题...那么...

a=1.1234567890123456;
fprintf(1, '%.12f', a)

嗯~
6楼2011-04-12 18:12:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cyl1124

荣誉版主 (文坛精英)



微尘、梦想(金币+1): 谢谢参与…… 2011-04-13 15:32:10
设置计算机的字位步长
7楼2011-04-12 20:39:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg(金币+1): 感谢说明 2011-04-13 01:20:33
matlab的double精度够了吧
只是print到command window的时候你看不到那么多而已
8楼2011-04-13 00:34:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xpk250 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿西北工业大学289 085602 +31 yang婷 2026-04-10 31/1550 2026-04-11 00:19 by gong120082
[考研] 263能源动力专硕求调剂 +4 加大号饭盒袋 2026-04-10 4/200 2026-04-10 20:52 by gong120082
[考研] 考研二轮调剂 +8 故人?? 2026-04-09 8/400 2026-04-10 09:44 by 青梅duoduo
[考研] 一志愿中国科学院上海有机所,有机化学356分找调剂 +11 Nadiums 2026-04-09 11/550 2026-04-09 18:04 by lijunpoly
[考研] 316求调剂 +3 想读研究生( ?∵ 2026-04-07 3/150 2026-04-09 17:31 by wp06
[考研] 337求调剂 +4 Gky09300550, 2026-04-09 4/200 2026-04-09 17:18 by 帕尔马拉特
[考研] 一志愿郑州大学 22408 305分求调剂 +3 安小满zzz 2026-04-08 3/150 2026-04-09 16:16 by wp06
[考研] 311求调剂 +6 surte 2026-04-08 13/650 2026-04-09 14:00 by surte
[考研] 22408 266求调剂 +11 masss11222 2026-04-07 14/700 2026-04-08 11:06 by yulian1987
[考研] 304求调剂 +10 素年祭语 2026-04-06 17/850 2026-04-08 09:05 by 蓝云思雨
[考研] 材料工程专业日语生求调剂 +9 111623 2026-04-07 9/450 2026-04-07 23:31 by 一只好果子?
[考研] 11408 325分 +3 jgtxuxgkx 2026-04-07 3/150 2026-04-07 23:10 by lbsjt
[考研] 312求调剂 +18 gtw1 2026-04-06 20/1000 2026-04-07 18:16 by 蓝云思雨
[考研] 一志愿西电085401求调剂 +4 sunw1306 2026-04-07 4/200 2026-04-07 16:40 by 啵啵啵0119
[考研] 一志愿北京化工085600 310分求调剂 +20 0856材料与化工3 2026-04-04 22/1100 2026-04-07 15:14 by 上岸快快
[考研] 调剂 +4 mcbbc 2026-04-06 5/250 2026-04-07 12:33 by upczlm1989
[考研] 292求调剂 +4 lilllllxccc 2026-04-05 5/250 2026-04-07 09:29 by 纺大杨老师
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 材料383求调剂 +5 郭阳阳阳成 2026-04-04 5/250 2026-04-04 19:06 by dongzh2009
[考研] 怎么删帖子啊 +3 缝曦1000 2026-04-04 3/150 2026-04-04 14:20 by 土木硕士招生
信息提示
请填处理意见