matlab怎么转换单双,Matlab单双转换错误

你应该知道有两个密切相关的问题(

In MATLAB, are variables REALLY double-precision by default?和

Why is 24.0000 not equal to 24.0000 in MATLAB?),但其中任何一个都没有完全涵盖这个问题……

当您计算给定有效数字和floating-point value的指数的十进制等效值时,您可以根据需要计算出任意数量的小数位数,但是floating-point relative accuracy之外的任何位置最终都没有实际值,通常甚至不显示.但是,在将精度较低的数字转换为更高精度的数字时,它们似乎在这里发挥作用.

让我们看一下x_s的值,因为它正常显示(仅显示有效数字)以及vpa将如何显示它(具有任意数字的位数):

>> x_s = single(3.2530601) % Create a single-precision number

x_s =

single

3.2530601

>> eps(x_s) % Floating-point relative accuracy

ans =

single

2.3841858e-07

>> vpa(x_s, 16) % Show 16 digits of precision, way more than the relative accuracy

ans =

3.253060102462769

>> x_d = double(x_s) % Convert to double-precision

x_d =

3.253060102462769

看那个!来自vpa的数字与转换为双精度时获得的数字相匹配.看起来,当从单个转换为双精度时,MATLAB会计算较低精度值的十进制等效值,以及较高精度值的位数,并使用它来初始化它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值