2015-12-10 17 views
-1

考虑MATLAB数组:如何修复和删除零之间的数量来平衡数字阵列中的

a = [102 20 1 30 8 255];

在这阵,我需要添加前缀以使所有的数字三位数零到所有的数值是这样的:

a = 102 020 001 030 008 255 

之后,我需要再次改变它。我怎样才能做到这一点? 我试图分开数字,并做到这一点。但它失败了。

+0

反向意味着数组a的原始值必须通过去除零 –

+0

_make被回收的所有通过在零之前加数字来表示三个数字是没有意义的。 '20'和'020'是相同的数字。这只是一个展示内容。要生成带有前导零的_strings_,请尝试类似'a = [102 20 1 30 8 255]; sprintf('%03i \ n',a)' –

回答

2

你想用的fprintfnotation,其可与sprintf被保存为一个字符串:

>> a = [102 20 1 30 8 255] 

a = 

    102 20  1 30  8 255 

>> b = sprintf('%.3d ',a) % b is a single string 

b = 

102 020 001 030 008 255 

>> a = str2num(b) 

a = 

    102 20  1 30  8 255 
+0

@ luis-mendo说什么 – Steve

0

您可能需要转换为字符串。例如,看看int2strnum2str函数。然后,您可以在开始时轻松连接零。例如:

s = int2str(10); 
['0' s] 

这给你010作为输出。 然后您可以使用str2num函数进行恢复。