查看: 4060|回复: 4|关注: 0

[已答复] 关于MATLAB对整数运算精度问题?

[复制链接]

论坛优秀回答者

权威

4070 麦片

财富积分



4

主题

4257

帖子

892

最佳答案
  • 关注者: 198
发表于 2012-10-12 20:05:21 | 显示全部楼层 |阅读模式
本帖最后由 maple1314168 于 2012-10-12 20:12 编辑

     本人使用的是MATLAB6.1。在处理一个问题,需要处理很大的整数。
MATLAB好像不会精确支持,只是使用类似于科学记数的方式。例如:
a=123456789123456789
    a=1.2346e+017
vpa(a)
    ans=123456789123456784
无论使用vpa或digits函数都没有用。MATLAB是如何记忆与运算这些整数?显示况且不正确,运算肯定会失真。
我计算的数据在10的17、18次方之后,整数已经错误。这是跟MAPLE软件计算的结果比较。
    请问:
(1)MATLAB是如何记忆与运算这些整数?何以延长整数的长度?
(2)新版本的MATLAB有没有考虑这问题?
  (3)  64位的机器精度长度可以翻倍?

新手

11 麦片

财富积分


050


1

主题

213

帖子

0

最佳答案
发表于 2012-10-12 20:39:18 | 显示全部楼层
用int64或uint64试试呢

论坛优秀回答者

权威

4070 麦片

财富积分



4

主题

4257

帖子

892

最佳答案
  • 关注者: 198
 楼主| 发表于 2012-10-12 21:21:43 来自手机 | 显示全部楼层
本帖最后由 maple1314168 于 2012-10-12 21:24 编辑

int64或uint64: matlab 6.1显示不存在此函数。

新手

11 麦片

财富积分


050


1

主题

213

帖子

0

最佳答案
发表于 2012-10-15 10:26:24 | 显示全部楼层

a = int64(123456789123456789)  int64的取值范围为 –2^63 to 2^63 – 1
如果数都是正数的话,可以用uint64 用法同上,取值范围为 0 to 2^64 – 1

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2013-5-30 12:31:28 | 显示全部楼层
你好,我正在到处找matlab6.1版的安装程序,楼主是有的吗。可以给我发一份吗,真是万分感谢你!!!我的邮箱地址为25093596@qq.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表