请问matlab中如何控制数据精度?

matlab默认的数据类型是double(64位)现在我生成了一些小数数值想让它们以小数点后不同的位数参与运算查看结果:例如:1.23568561、取小数点后1位:取1.... matlab默认的数据类型是double(64位) 现在我生成了一些小数数值 想让它们以小数点后不同的位数参与运算查看结果:

例如:1.2356856
1、取小数点后1位:取1.2运算 ;
2、取小数点后3位:取1.236运算;
3、取小数点后5位:取1.23569运算;
……

应当怎么处理?

format函数不行,format只能改变显示长度,对参与运算的精度无法控制

用vpa也不行,因为vpa只能取有效数字,碰到太小的数比如0.000000567754这样的数就无法控制取小数点后几位了

请问该如何处理?
展开
 我来答
li1127217ye
推荐于2016-05-21 · TA获得超过350个赞
知道答主
回答量:43
采纳率:0%
帮助的人:41万
展开全部
从您的提问中可以发现,您是有一定的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)即可;

希望我的回答能够解答您的疑惑,谢谢。
l001d
2010-09-14 · TA获得超过4366个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:1485万
展开全部
例如:a=1.2356856
取小数点后n位计算

a=1.2356856;
a2=a*10^(n);
a3=round(a2);
a4=a3/10^(n);

a4就是你想要的结果。这样写是为让你看明白,其实中间的计算步骤可以省略。

欢迎交流。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式