圆通寄到湖南株洲收费:请教关于matlab的一个简单问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 12:47:07
在matlab里面,我作出一个分布n2 = normrnd(0,1,[1 5])
得到结果如下:
n2 =
-194/3015 1591/1208 682/2991 -1341/938 -2253/15050

而例子里面的结果为:
0.0591 1.7971 0.2641 0.8717 -1.4462

请问:如何将分数改为小数???

http://zhidao.baidu.com/question/6203726.html

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

针对数据的显示形式控制,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)
在很多其它的程序设计语言中是不可能得到1的。这就说明了Matlab在计算的过程中不会损失用户的计算信息(包括中间结果)。

简单地回答你。在n2之前加format即可。想变分数,加format rat

如:
>>format
>>n2 = normrnd(0,1,[1 5])
运行结果:
n2 =
-0.4326 -1.6656 0.1253 0.2877 -1.1465

>>format rat
>>n2 = normrnd(0,1,[1 5])

运行结果:
n2 =
-2079/11135 757/1043 -423/719 2467/1130 -193/1415

MatLab一般输出结果都是小数
你是不是哪里做了设置?
手头暂时没有matlab#14你自己看看是不是做了什么设置。
或者用help看看参数

n2=normrnd(0,1,1,5)
里边的参数别用向量形式[1 5]输出结果怎么可能是分数呢?再说你把你那分数求一下,结果也不同于例题呀,至少正负就有错误! 除非你前面将n2定义成符号变量了,如果那样你可以试试eval(n2).