24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 536  |  回复: 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的回帖

einboplure

银虫 (小有名气)

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

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的回帖

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的回帖

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的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见