找回密码
 注册
Simdroid-非首页
查看: 157|回复: 4

矩阵中的数据如何设置使其保留小数点后2位

[复制链接]
发表于 2009-9-6 19:35:34 | 显示全部楼层 |阅读模式 来自 上海
经计算矩阵A=[-63.10527680082951, 0 ,78.88159600103688;
0 ,0 ,1;
-0.6084, -5.332395889670093, -0.730232558139535]怎么样使其矩阵中的数只保留小数点后2位。
发表于 2009-9-6 20:47:40 | 显示全部楼层 来自 广西南宁
Simdroid开发平台
执行命令format bank;
或者通过file>preferences,command Windows 下的numeric format 设置为bank即可。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2009-9-6 23:03:24 | 显示全部楼层 来自 重庆
本帖最后由 风天小畜 于 2009-9-6 23:06 编辑

如果,是永久地去除 小数点后N位,(不知道有没有现成的函数?如果没有,就可以使用下面的我做的函数)

截去A矩阵小数点后N位?
先把A乘以10^N,在fix函数,去除小数点。再把结果除以10^N即可。
  1. function newMat = myFix(matA,varN)
  2. %处理矩阵matA,使得矩阵matA内的数,只保留varN位小数,返回newMat;
  3. %如果需要四舍五入或其它的,把fix换成ceil, floor, round;
  4. newMat=fix(matA.*(10^varN))./(10^varN);
  5. end
复制代码
示范:
>> A=rand(5,4)
A =
         0.276025076998578         0.498364051982143         0.751267059305653         0.959291425205444
         0.679702676853675         0.959743958516081         0.255095115459269         0.547215529963803
         0.655098003973841         0.340385726666133         0.505957051665142         0.138624442828679
         0.162611735194631         0.585267750979777         0.699076722656686         0.149294005559057
         0.118997681558377         0.223811939491137         0.890903252535799         0.257508254123736
>> myFix(A,6)
ans =
                  0.276025                  0.498364                  0.751267                  0.959291
                  0.679702                  0.959743                  0.255095                  0.547215
                  0.655098                  0.340385                  0.505957                  0.138624
                  0.162611                  0.585267                  0.699076                  0.149294
                  0.118997                  0.223811                  0.890903                  0.257508
>>

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-9-7 12:29:13 | 显示全部楼层 来自 上海
2# kwxsp86
如果是一段程序中需要截取后2位,命令操作如何在程序中实现呢
回复 不支持

使用道具 举报

发表于 2009-9-7 13:14:35 | 显示全部楼层 来自 广西南宁
你是想要取小数后两位而不想要整数部分是吗?
可以将你的数用rem(*,1)后把整数部分去掉,再看看。

下面以2.368为例:
------------------
如果你已经设置了format bank
那么可以直接rem(2.368,1)
则得到ans=0.37
------------
否则用3楼仁兄的函数
pp=rem(2.368,1);
pp2=myFix(pp,2);
pp2=0.37;

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-27 15:08 , Processed in 0.053066 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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