矩阵中的数据如何设置使其保留小数点后2位
经计算矩阵A=[-63.10527680082951, 0 ,78.88159600103688;0 ,0 ,1;
-0.6084, -5.332395889670093, -0.730232558139535]怎么样使其矩阵中的数只保留小数点后2位。 执行命令format bank;
或者通过file>preferences,command Windows 下的numeric format 设置为bank即可。 本帖最后由 风天小畜 于 2009-9-6 23:06 编辑
如果,是永久地去除 小数点后N位,(不知道有没有现成的函数?如果没有,就可以使用下面的我做的函数)
截去A矩阵小数点后N位?
先把A乘以10^N,在fix函数,去除小数点。再把结果除以10^N即可。function newMat = myFix(matA,varN)
%处理矩阵matA,使得矩阵matA内的数,只保留varN位小数,返回newMat;
%如果需要四舍五入或其它的,把fix换成ceil, floor, round;
newMat=fix(matA.*(10^varN))./(10^varN);
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
>> 2# kwxsp86
如果是一段程序中需要截取后2位,命令操作如何在程序中实现呢 你是想要取小数后两位而不想要整数部分是吗?
可以将你的数用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]