在matlab中如何控制数据的输出格式?

请问各位大侠,在matlab中怎么样控制数据的输出格式啊?在C语言中printf函数有很多的选项可以实现这个操作,但matlab中,我输出一个矩阵,结果它就自动按照某一列成科学计数法表示,在表头上上写1.0e+006 *,但这样以来,其余列就有些显示全部是0.0000了,怎么办啊?急,谢谢各位
我设成format longp之后也不行,还是有关1.0e+006*...
然后还是有个不应该是0的数显示为0了。short的话就更不行了...

1、第一步在我们的电脑上打开matlab,在命令行窗口中创建了一个变量str=12345.1123456789;,使用 format;str显示出来,可以看到默认是short格式,short是短整式,显示小数点后四位,如下图所示:

2、第二步我们通过“format long;str”代码,让数据显示格式变为长格式(long),如下图所示:

3、第三步通过“ format short g;str”代码,让数据显示格式变为短紧缩格式,可以根据需要设置数据的不同显示格式,如下图所示:

4、第四步我们点击主页中的预设,去设置创建变量,数组的默认显示格式,如下图所示:

5、第五步进去预设项界面之后,点击变量,可以看到默认数组变量格式为short,如下图所示:

6、第六步我们点击下拉列表可以设置默认数组变量的显示格式,点击确定就设置完成了,如下图所示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
matlab中有专用命令 format
但该命令不影响数据的储存形式和计算精度
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(a),或str2num(a).
但是无论Matlab中采取什么样的输出格式,在系统内核中的变量的精度总是保持精确的(尽可能)。
除非人为的改变它的计算精度。
可以用一个简单的例子来说明这个问题:如a=1/3 显示为0.33333333
a=a*3 得到 1 (不是0.99999999)
第2个回答  2008-08-23
试试看format long g或format long e
还有一种试试看在变量前加个vpa
例如
a=[1 10 100 1000 10000 100000 1000000]+rand()
vpa(a)
第3个回答  2008-08-23
数字显示,在最后可以通过函数format来控制,它可以控制很多种的输出的格式,至于matlab中,是默认的按照format short e输出.
你可以通过format long来加大输出的显示有效位数,或者是format long e.
第4个回答  2008-08-23
help sprintf

这是matlab的format格式输出,很好用.
也有%s,%5d,%g,%f等
相似回答