24小时热门版块排行榜    

Znn3bq.jpeg
查看: 706  |  回复: 11
当前主题已经存档。

einboplure

银虫 (小有名气)

[交流] 【求助】请教用matlab程序将某一小数转化为数组

我的一个程序中需要解决一个问题:将某一小数转化为数组,例如0.25987这个小数,转化为数组后成为[2 5 9 8 7]。我设计了一个matlab程序,但这个程序到小数最后一位时总会出错。我找不出原因所在。请教大家。

%x是初始小数,
x;
n=1;
while x~0
    k=1
    y(n)=fix(x*(10^k))
    x=x*(10^k)
    m=x-y(n)
    x=m
    n=n+1
end
y %y是所求的数组
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★
kuhailangyu(金币+2,VIP+0):替楼主感谢! 4-19 13:56
einboplure(金币+1,VIP+0):谢谢 4-19 16:18
不要那样搞,受计算精度影响,易出错,for循环也慢
>> a=int8(num2str(0.346564,'%7.6f'))-48

a =

    0   -2    3    4    6    5    6    4

>> a=a(find(a==-2)+1:end)

a =

    3    4    6    5    6    4

>>
2楼2009-04-19 13:03:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

einboplure

银虫 (小有名气)

谢谢你
3楼2009-04-19 16:19:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

恩,2楼兄弟说的好,他写的精练的很呐
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
4楼2009-04-19 16:23:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

einboplure

银虫 (小有名气)

还是有一个问题,如果这个小数位数比较多,比如小数点后一千多位,0.23456789。。。,用这个方法似乎就不行了
5楼2009-04-19 17:10:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

恩,也是哈,要是上千的话,循环好点!
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
6楼2009-04-19 17:31:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★
sunxiao(金币+4,VIP+0):谢谢参与,欢迎常来仿真编程版 4-20 05:47
MATLAB有个vpa函数,可以搞这个,但存不下来,我发过贴子无人应助,如果能把结果存下来就可以了。

有回无聊编了一个求pi前n位的程序,可是运行地很慢,又注意到MATLAB里有vpa这个函数,看来MATLAB里面高精度计算还是很完备的,但vpa这个函数的结果存不下来,郁闷了,就没再搞。

就算MATLAB里用double型也没多少位啊,不知MATLAB里怎样把计算精度搞那么大啊?

下面的命令瞬间就可以完成:
>> a=vpa(pi,2000)

a =

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275901

但是想把这两千位格式化输出却不太好办。

[ Last edited by fspdlh on 2009-4-19 at 22:16 ]
7楼2009-04-19 17:51:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunxiao

荣誉版主 (著名写手)

小木虫钓鱼协会会长

学习啦
西南交大隧道方向招硕、博士
8楼2009-04-20 05:48:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

引用回帖:
Originally posted by einboplure at 2009-4-19 17:10:
还是有一个问题,如果这个小数位数比较多,比如小数点后一千多位,0.23456789。。。,用这个方法似乎就不行了

如果一千位你那方法也不行了
9楼2009-04-20 10:12:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

windhair

铜虫 (小有名气)

这个有意思,以前没用过,不知道可以用在什么方面、。。。
10楼2009-04-24 00:03:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 einboplure 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 评审有感 +10 popular289 2026-05-18 16/800 2026-05-19 14:46 by popular289
[论文投稿] Sci. Bull. 悲剧经验 +4 jyang1999 2026-05-16 4/200 2026-05-19 10:56 by maolC
[考博] 找博士生导师 +6 小代想上岸 2026-05-15 7/350 2026-05-19 10:22 by free_fisher
[教师之家] 上海大学实验技术岗位非升即走 +10 嘻嘻哈哈乐呵呵 2026-05-15 11/550 2026-05-19 10:03 by 嘻嘻哈哈乐呵呵
[考博] 26/27申博自荐-锂/钠电池方向 5+3 狗头军师. 2026-05-15 4/200 2026-05-19 09:10 by moonboat
[基金申请] 同样的基金本子,换个专家直接从C变A! +3 国自然国社科中 2026-05-19 3/150 2026-05-19 08:50 by Equinoxhua
[基金申请] 别被青基扩招骗了!26年科研内卷才刚刚开始 +3 国自然国社科中 2026-05-14 4/200 2026-05-19 08:48 by archvillain
[考博] 26/27博士推荐 +4 1木头人13949 2026-05-13 4/200 2026-05-19 08:29 by zhyzzh
[考博] 2026博士还有哪些学校有名额 +7 小王求读研 2026-05-15 8/400 2026-05-19 08:27 by zhyzzh
[考博] 云南大学材料与能源学院解琳课题组钙钛矿博士招生 +3 光伏爱好者 2026-05-17 4/200 2026-05-19 01:19 by 风起于浮萍
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +8 1234567wang 2026-05-17 10/500 2026-05-18 18:52 by zzahkj
[基金申请] 国自然上会要求 +5 无名者登山 2026-05-18 9/450 2026-05-18 17:50 by BlakeReary
[基金申请] 今年审到国自然15份,谈谈感受 +16 国自然国社科中 2026-05-17 16/800 2026-05-18 14:58 by gy116024
[硕博家园] 考博自荐 +5 科研狗111 2026-05-13 6/300 2026-05-18 11:22 by 糊糊涂涂好
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +7 水和泥不是水泥 2026-05-13 10/500 2026-05-18 07:50 by 水和泥不是水泥
[考博] 光量子物理方向 博士招生 1人(2026.09) +3 sandyworld 2026-05-15 4/200 2026-05-17 14:38 by sandyworld
[有机交流] 如何实现卤原子转化 +3 BT20230424 2026-05-15 5/250 2026-05-16 16:20 by czyzsu
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
信息提示
请填处理意见