声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4942|回复: 12

[综合讨论] matlab 怎样更改小数点后面的位数?

[复制链接]
发表于 2011-4-28 20:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
默认的是0.0000小数点后面是4位,如何改成更长的位数?
回复
分享到:

使用道具 举报

发表于 2011-4-28 20:45 | 显示全部楼层
  1. pi
  2. ans =
  3.     3.1416
  4. >> format long
  5. >> pi
  6. ans =
  7.    3.141592653589793
  8. >>
复制代码
 楼主| 发表于 2011-4-28 21:10 | 显示全部楼层
回复 2 # meiyongyuandeze 的帖子

有的数会这样显示啊
M1 =
  1.0e+005 *
  Columns 1 through 7
   0.00000524454475   0.00000537470803   0.00000000567869   0.00000000037219   0.00000000000979  -0.00000035238926  -0.00000403848505
   0.00000537470803   0.00000552743069   0.00000000583010   0.00000000000979  -0.00000000037219   0.00000034323765  -0.00000413831257
   0.00000000567869   0.00000000583010   0.00000000942503  -0.00000035238926   0.00000034323765                  0  -0.00000000438066

我不想这样显示,能否换成另一种形式 比如说1.235e+10这种形式的
发表于 2011-4-28 21:27 | 显示全部楼层
回复 3 # weideyong8 的帖子
  1. a=0.00054816548974
  2. a =
  3.   5.4817e-004
  4. >> format long e
  5. >> a
  6. a =
  7.     5.481654897400001e-004
复制代码
是不是想例子这样??

评分

1

查看全部评分

 楼主| 发表于 2011-4-28 21:47 | 显示全部楼层
回复 4 # meiyongyuandeze 的帖子

是的 谢谢
 楼主| 发表于 2011-4-28 21:48 | 显示全部楼层
回复 4 # meiyongyuandeze 的帖子

你好 请问 输入  inv(M1)      %输入这个命令 提示警告,怎么解决啊
能出结果 但是有警告!怎么解决啊

Warning: Matrix is close to singular or badly scaled.
         Results may be inaccurate. RCOND = 2.308810e-022.
为什么会这样啊?
发表于 2011-4-28 22:07 | 显示全部楼层
回复 6 # weideyong8 的帖子

说明你的矩阵M1是病态的,求逆的话会出错!一般来说这是求得逆应该是广义逆。
可以用pinv(A)可以按照默认的精度求Moore-Penrose广义逆矩阵,当然也可以按照指定的精度求广义逆,可以参将help文件。
在matlab中可能就这个好办法了。还可尝试奇异值分解方法。

评分

1

查看全部评分

 楼主| 发表于 2011-4-30 10:08 | 显示全部楼层
回复 7 # meiyongyuandeze 的帖子

应用pinv命令 能保证这个逆  例如A
pinv(A)*A=单位矩阵吗?
好像不等于单位矩阵啊
发表于 2011-4-30 13:53 | 显示全部楼层
本帖最后由 meiyongyuandeze 于 2011-4-30 13:58 编辑

回复 8 # weideyong8 的帖子

病态矩阵的逆是根本不存在的,广义逆矩阵的定义是,存在一个矩阵N,满足ANA=A,称N为A的广义逆矩阵。
 楼主| 发表于 2011-4-30 15:15 | 显示全部楼层
回复 9 # meiyongyuandeze 的帖子

你说的对 我的矩阵的数量级差不多能相差10^10吧,这样怎么解决啊?解决这个病态矩阵?
发表于 2011-5-1 23:40 | 显示全部楼层
解决矩阵的病态问题可能要看一些关于矩阵理论和数值计算累的专业书籍吧,这个应该是专业问题!
 楼主| 发表于 2011-5-2 10:14 | 显示全部楼层
回复 11 # meiyongyuandeze 的帖子

size(Ki5heng)

ans =

    31    31

>> rank(Ki5heng)

ans =

    28

>> det(Ki5heng)

ans =

    9.989084322069472e+290
这是怎么回事啊?明明矩阵是奇异的  怎么行列式不为零啊!!!
发表于 2012-11-23 21:13 | 显示全部楼层
利用format long可以更改成15为小数的,如果只要显示的话可以尝试一下vpa函数

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 20:47 , Processed in 0.075918 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表