加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在matlab中如何控制数据的精度?【完整总结】

(2013-02-04 14:56:39)
标签:

杂谈

针对数据的显示形式控制,matlab中有专用命令 format 
但该命令不影响数据的储存形式和计算精度

format 
缺省时为默认短格式方式与format short相同 
 
format short 
 短格式方式,显示5位定点十进制数。 
 
format long 
 长格式方式,显示15位定点十进制数。

format short g
当数据大于1000或小于1时便会以科学记数法显示(-e),若想坚持用整数部分加小数部分的格式来显示,就要再后边加 g

format long g
 
format hex 
 
十六进制格式方式。 
 
format bank 
 
银行格式。按元、角、分(小数点后具有两位)的固定格式。 
 
format + 
 +
格式,以+,和空格分别表示中的正数,负数和零元素 
 
format short  e 
 
短格式e方式,显示5位浮点十进制数 
 
format long  
 长格式e方式,显示15位浮点十进制数。 
 
format rat 
 
分数格式形式。用有理数逼近显示数据。如pi显示为355/113 
 
format loose 
 
松散格式。数据之间有空行。 
 
format compact 
 紧凑格式。数据之间无空行。

vpa(date,n)
将数据daten位有效数字显示。


format
默认格式 
format short 5
字长定点数 
format long 15
字长定点数 
format short e 5
字长浮点数 
format long e 15
字长浮点数 
format short g
 
format long g
 
format hex 16
进制 
format bank
定点货币形式 
format rat
小数分数表示 
format +
+,-,空格 
format compact
压缩空格 
format loose
包括空格和空行 
format long 15
字长定点数 
format short e 5
字长浮点数 
format long e 15
字长浮点数 
format short g
 
format long g
 
format hex 16
进制 
format bank
定点货币形式 
format rat
小数分数表示 
format +
+,-,空格 
format compact
压缩空格 
format loose
包括空格和空行 

当然也可以不用format 命令,可以修改系统的默认设置格式,File->Preferences->Command Window->Text Display. 

如果想得到分数可以用rats()函数 
如果想得到根号,只有用符号表示了,当然用符号表示是万能的。例如: 
a=1/3
得到 0.33333 
rats(a)
得到 1/3 
a='sqrt(3)'
得到 sqrt(3) 不过这是字符型,要转换成数值型可以用eval_r(a),str2num(a). 


但是无论Matlab中采取什么样的输出格式,在系统内核中的变量的精度总是保持精确的(尽可能)。除非你人为的改变它的计算精度。我们可以用一个简单的例子来说明这个问题:如a=1/3 显示为0.33333333 
a=a*3
得到 1 (不是0.99999999 
在很多其它的程序设计语言中是不可能得到1的。这就说明了Matlab在计算的过程中不会损失用户的计算信息(包括中间结果)。

 

检测format的功能:证实format只是显示而已,实际上无本质区别,位数算起来还是一样的

>> a=0.23456

 

a =

 

   0.234560000000000

 

>> format short

 

>> a

a =

 

    0.2346

 

>> b=a*2

 

b =

 

    0.4691

 

>> c=0.2346*2

 

c =

 

    0.4692

 

>> 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有