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

怎么调整matlab 有效数字到所要求的位数

[复制链接]
发表于 2010-12-15 07:39:10 | 显示全部楼层 |阅读模式 来自 大连理工大学
例如 我编程计算 1/(j^2-1)的求和  j从2到100
用matlaB直接计算的结果是0.7400  
j从2取到10000 计算结果是0.7499  

但如果我想要显示小数点后 五位或六位  应该怎么实现
c语言中可以定义数据类型 不知matlaB中如何定义 是整体定义吗
发表于 2010-12-15 08:52:29 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
  1. clear;clc;close all
  2. j=2:100;
  3. a=sum(1./(j.^2-1));
  4. fprintf('a=%8.6f\n',a)

  5. j=2:10000;
  6. a=sum(1./(j.^2-1));
  7. fprintf('a=%12.8f\n',a)
复制代码
也可以用num2str去写,当然还有sprintf等等

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-12-15 10:03:35 | 显示全部楼层 来自 江苏南京
help vpa 试试
vpa(ans,n),n为你所需要的位数,ans为结果
回复 不支持

使用道具 举报

 楼主| 发表于 2010-12-15 10:12:31 | 显示全部楼层 来自 大连理工大学
3# xiaoxiaobeifeng
这个是在程序最后添加吗
回复 不支持

使用道具 举报

 楼主| 发表于 2010-12-15 10:16:34 | 显示全部楼层 来自 大连理工大学
本帖最后由 dongsheng01 于 2010-12-15 10:25 编辑

2# qibbxxt
谢谢版主指点 程序运行没问题 我要编一个函数 到时候 给N赋值的
这个倒还好弄 要是编矩阵 限制两次迭代过程的误差 比方1/2*10^5  
这时候 矩阵里面的数值可以统一定义成小数点后6位的形式吗
回复 不支持

使用道具 举报

发表于 2010-12-15 11:04:42 | 显示全部楼层 来自 河北廊坊
5# dongsheng01
这个似乎不好实现,建议你可以用判断语句

  1. if elseif ……
  2. switch case ……
复制代码
回复 不支持

使用道具 举报

发表于 2010-12-16 14:29:49 | 显示全部楼层 来自 河北秦皇岛
help format
回复 不支持

使用道具 举报

发表于 2010-12-16 17:25:18 | 显示全部楼层 来自 浙江杭州
在程序开头加一行 format long 试试。
回复 不支持

使用道具 举报

发表于 2010-12-17 10:19:06 | 显示全部楼层 来自 湖南长沙
查一下rounds函数
回复 不支持

使用道具 举报

 楼主| 发表于 2010-12-17 14:02:44 | 显示全部楼层 来自 大连理工大学
谢谢诸位  按照8楼的方法 已经基本可行了
回复 不支持

使用道具 举报

发表于 2010-12-17 14:10:57 | 显示全部楼层 来自 河北廊坊
9# lvyongjian
这个函数是你自己写的还是在别的地方下载的吧,请你贴出源码共享之
回复 不支持

使用道具 举报

发表于 2010-12-17 14:12:39 | 显示全部楼层 来自 上海
3楼正解~~~~
回复 不支持

使用道具 举报

发表于 2011-1-15 20:14:51 | 显示全部楼层 来自 清华大学
很给力 3# xiaoxiaobeifeng
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-29 02:46 , Processed in 0.058278 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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