多个单个数字的位数

236(30天)
我想改变数量1123年1 1 2 3,想结合数字分割成单独的数字

接受的答案

Azzi Abdelmalek
Azzi Abdelmalek 2014年7月22日
一个= 1234
b = str2double(正则表达式(num2str (a),“\ d”,“匹配”))
3评论
亚当Danz
亚当Danz 2020年4月29日
对于大型的价值观等 一个= 11122333345555566 这将不工作 num2str 将值转换为 “1.112233334555557 e + 16” 。否则不错的解决方案。

登录置评。

更多的答案(3)

约翰D 'Errico
约翰D 'Errico 2014年7月22日
N = 1123;
Ndigits = dec2base (N, 10) -' 0 '
Ndigits =
1 1 2 3
3评论
约翰D 'Errico
约翰D 'Errico 2023年2月27日
编辑:约翰D 'Errico 2023年2月27日
与一个浮点数不困难,但请记住,一个浮点数不是一个确切的十进制表示这一数字。但是…
X = 1.2345;
dec2base (X * 10000, 10)
ans =“12345”
dec2base (X * 10000, 10) -' 0 '
ans = 1×5
1 2 3 4 5
你甚至可以忙得团团转,小数点在那里如果你愿意,但是如果你想要,然后sprintf可以说是一个更好的选择。

登录置评。


1月
1月 2017年2月7日
编辑:1月 2017年2月14日
获得的数字,转换成一个字符串是一个间接层。住在数值通常是更快:
N = 1123;
m =地板(log10 (N));%[编辑]谢谢斯蒂芬
D =国防部(地板(N。/ 10。^ (m: 1:0), 10);
5个评论
Stephen23
Stephen23 2022年3月25日
N = 6;
m = 3;%的顺序
d =国防部(地板(N。/ 10。^ (m: 1:0), 10)
d = 1×4
0 0 0 6

登录置评。


雷蒙Villamangca
雷蒙Villamangca 2018年11月20日
编辑:雷蒙Villamangca 2018年11月20日
一个简单的单线的解决方案:
> > num = 12345042117;
> > arrayfun (@ (x)国防部(地板(num / 10 ^ x), 10),地板(log10 (num)): 1:0)
ans =
1 2 3 4 5 0 4 2 1 1 7
3评论
雷蒙Villamangca
雷蒙Villamangca 2023年2月27日
@Jyahway盾:如果数字那么久,你可能会输入一个字符的字符串,无论如何。这意味着解决方案甚至更简单:
num =“62229893423380308135336276614282806444486645238749”;
num -' 0 '
ans = 1×50
6 2 2 2 9 8 9 3 4 2 3 3 8 0 3 0 8 1 3 5 3 2 3 6 7 6 6 1 4 2

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!