请问matlab中如何控制数据精度?
matlab默认的数据类型是double(64位) 现在我生成了一些小数数值 想让它们以小数点后不同的位数参与运算查看结果:
例如:1.2356856
1、取小数点后1位:取1.2运算 ;
2、取小数点后3位:取1.236运算;
3、取小数点后5位:取1.23569运算;
……
应当怎么处理?
format函数不行,format只能改变显示长度,对参与运算的精度无法控制
用vpa也不行,因为vpa只能取有效数字,碰到太小的数比如0.000000567754这样的数就无法控制取小数点后几位了
请问该如何处理?
人气:385 ℃ 时间:2020-02-05 18:08:04
解答
从您的提问中可以发现,您是有一定的Matlab基础的.
我建议您用round函数进行控制精度.延用您举的例子.为了书写方便,就设1.2356856为x.
取小数点后1位,round(x*10)/10即可;
取小数点后2位,round(x*100)/100即可;
依此类推,取小数点后n位,round(x*10^n)/10^n即可;
取小数点前1位,round(x/10)*10即可;
取小数点前2位,round(x/100)*100即可;
依此类推,取小数点前n位,round(x*10^(-n))/10^(-n)即可;
希望我的回答能够解答您的疑惑,
推荐
- 多项式-x3++xy+y3-3中哪个为二次项,系数是什么?
- 如果二班人数比三班人数多8分之1,那么三班人数比二班人数少几分之几?要有计算过程
- 小军和小明共收集卡片549张,其中小军收集的张数是小明的83%,两人分别收集卡片多少张?2.(6).1班分三个小组植树,每个小组的任务是80棵.上午,1组完成任务的2/5,2组完成的任务和3组没完成的任务相同,(6).1
- 电话号码有8位第一位不能为0,后面的可以从0到9随机数字,问一共有多少个电话号码
- 8个人站成一排,其中A、B、C互不相邻且D、E也互不相邻的排法有多少种?
- .807807807807.的小数部分第100位的数字是
- 有关非洲的两个地理问题~求答~
- (3分之1)的100次方乘(-3)的101次方
猜你喜欢