2.2 数据格式显示
虽然在MATLAB系统中数据的存储和计算都是以双精度数方式进行的,但其显示格式却可以有不同的形式。在MATLAB的命令行中通常可以利用format命令来调整数据的不同显示格式。format命令的格式和作用如下。
(1)format:默认值,数据显示格式与short格式相同。
(2)format short:短格式,只显示5位数。对于小于1000且大于0.0001的小数,则整数部分会按数据的原格式显示,而小数只会显示到小数点后面4位,如123.45678即显示123.4568;对于大于1000或小于0.0001的小数,其显示格式与format short e相同,即小数部分只显示5位数,如输入0.00001便会显示1.0000e−005,而输入1000.123456则会显示1.0001e+003,而对于整数,绝对值小于10e9则按原样输出,而大于等于10e9的数则其显示格式与format short e相同。可以通过实验来比较它与format short e之间的联系与区别。
(3)format long:长格式,显示15位数。也就是将所有的小数都用e格式输出,e左边为15位数,如输入1.2则会输出1.200000000000000e+000,这与format long e格式基本相同;而对于整数,绝对值小于10e9的数按原样输出,而大于等于10e9的数则按e格式输出,如输入10000则显示10000,而输入−1000000000则显示−1.000000000000000e+009。
(4)format short e:短格式e方式,对于任意小数采用e格式,只显示5位小数,如输入1.2则会显示1.2000e+000;对于整数,其显示格式与format short格式相同。
(5)format long e:长格式e方式,显示15位小数。对于任意小数都会采用e格式显示,如输入1.2则显示1.200000000000000e+000;对于整数,其显示格式参照format short。
(6)format short g:最优化短格式,最多显示5位数,系统会根据数据的大小和形式采用比较好的显示数据的方式,如略去小数后面的零等。如输入1.234e1则显示12.34,输入1234.5678则显示1234.6,输入1234567.8888则显示1.2346e+006,输入0.02000则显示0.02等,其显示方式看起来比较灵活和更加合理。对于整数的显示方式,可以参照format short格式。
(7)format long g:最优化长格式,最多显示15位数。其显示规则大体与format short g相同,现举例加以说明。输入1.2则显示1.2,输入1.2345678900则显示1.23456789,输入1.234567890123456789则显示1.23456789012346,输入1234567890123456.1234567则显示1.23456789012346e+015。
(8)format hex:十六进制格式。显示二进制双精度数的十六进制形式,如输入1.2则显示3ff3333333333333,输入−2.3456则显示c002c3c9eecbfb16。
(9)format bank:货币格式。保留小数点后两位小数,对于整数亦是如此。但并不是简单的四舍五入法,如输入0.355则显示0.36,而是输入0.345则显示0.34;对于任意整数其后都显示两位小数,如输入1则显示1.00。
(10)format rat:有理格式。对于整数则照常显示,而对于小数则用两个整数相除的方式显示。如输入0.5和1/2则都会显示1/2,输入6.33333则显示19/3。注意:用有理小数表示分数是有一定精度要求的,如输入6.3333则只会显示63333/10000,而不会显示19/3。
(11)format +:紧密格式。用“+”“−”或空格表示数据为正、负或零。如输入1−2则会显示“−”,输入3则会显示“+”,输入0则会输出一个空格。
例2.12 MATLAB中format命令的用法。
>> format compact
>> a=[123.4567 3;3.845678 5]
a =
123.4567 3
3.8456 5
不论采用什么样的显示格式,数据在内存中的精确度是不会变的,即不影响数据的存储。对于a=19/3
,当用format short格式显示时是6.3333,而改用format rat格式显示时仍是19/3,而不会因为已经用format short格式显示过而丢失精度。