24小时热门版块排行榜    

查看: 1516  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 考研化学学硕调剂,一志愿985 +5 张vvvv 2026-03-15 7/350 2026-03-21 19:23 by ColorlessPI
[考研] 297求调剂 +11 戏精丹丹丹 2026-03-17 12/600 2026-03-21 17:47 by ColorlessPI
[考研] 296求调剂 +4 www_q 2026-03-20 4/200 2026-03-21 17:26 by 学员8dgXkO
[考研] 求调剂 +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
[考研] 材料与化工(0856)304求 B区 调剂 +3 邱gl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[考研] 316求调剂 +6 梁茜雯 2026-03-19 6/300 2026-03-21 06:32 by Ecowxq666!
[考研] 070300化学319求调剂 +7 锦鲤0909 2026-03-17 7/350 2026-03-21 03:46 by JourneyLucky
[考研] 083200学硕321分一志愿暨南大学求调剂 +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[考研] 化学求调剂 +4 临泽境llllll 2026-03-17 5/250 2026-03-21 02:23 by JourneyLucky
[考研] 330求调剂 +4 小材化本科 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[考研] 288求调剂 +16 于海海海海 2026-03-19 16/800 2026-03-20 22:28 by JourneyLucky
[考研] 一志愿西安交通大学 学硕 354求调剂211或者双一流 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 一志愿吉林大学材料学硕321求调剂 +11 Ymlll 2026-03-18 15/750 2026-03-20 19:40 by 丁丁*
[考研] 求调剂 +3 eation27 2026-03-20 3/150 2026-03-20 19:32 by JourneyLucky
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
信息提示
请填处理意见