24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1553  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿211生物学280分 求调剂 +7 李rien 2026-04-05 7/350 2026-04-11 11:16 by 逆水乘风
[考研] 289求调剂 +5 L1ttleTiger 2026-04-04 5/250 2026-04-11 10:47 by zhq0425
[考研] 296求调剂 +7 汪!?! 2026-04-09 7/350 2026-04-11 10:41 by zhq0425
[考研] 085410-273求调剂 +6 X1999 2026-04-10 6/300 2026-04-11 10:32 by Delta2012
[考研] 346,工科求调剂 +3 moser233 2026-04-09 3/150 2026-04-11 10:04 by zhq0425
[考研] 一志愿211,化学310分,本科重点双非,求调剂 +23 努力奋斗112 2026-04-08 23/1150 2026-04-10 23:29 by 314126402
[考研] 一志愿华南理工大学331分材料求调剂 +9 天下ww 2026-04-09 9/450 2026-04-10 22:58 by Ftglcn90
[考研] 287求调剂 +15 Fnhc 2026-04-07 21/1050 2026-04-10 19:09 by chemisry
[考研] 362求调剂 +10 我要考大 2026-04-06 14/700 2026-04-10 17:00 by luoyongfeng
[考研] 求调剂 +11 翩翩一书生 2026-04-09 13/650 2026-04-10 10:27 by liuhuiying09
[考研] 08600生物与医药-327 +10 18755400796 2026-04-05 10/500 2026-04-10 08:14 by kangsm
[考研] 085400电子信息类(川大控制工程)求调剂可跨专业 求老师联系 +3 626776879 2026-04-08 3/150 2026-04-09 16:05 by 猪会飞
[考研] 288求调剂 +15 没有答案_ 2026-04-05 15/750 2026-04-09 10:22 by 5268321
[考研] 296求调剂 +3 汪!?! 2026-04-08 3/150 2026-04-08 22:00 by zhouyuwinner
[考研] 生物学学硕,初试351分,求调剂 +4 …~、王…~ 2026-04-08 5/250 2026-04-08 21:49 by limeifeng
[考研] 计算机408|在校多次国家级竞赛获奖|申请调剂 +4 东山大白鹅 2026-04-05 4/200 2026-04-08 00:18 by chongya
[考研] 285求调剂 +15 哦呦呼o 2026-04-04 17/850 2026-04-06 23:02 by chenzhimin
[考研] 材料工程310专硕调剂 +14 捞捞我…. 2026-04-04 15/750 2026-04-06 14:18 by lqwchd
[考研] 302分 085601求调剂推荐 +11 zyx上岸! 2026-04-05 11/550 2026-04-05 22:13 by dongzh2009
[考研] 296求调剂 +3 汪!?! 2026-04-05 5/250 2026-04-05 17:38 by 蓝云思雨
信息提示
请填处理意见