Pad a character array with n zeros
16 次查看(过去 30 天)
显示 更早的评论
I know there are formatting tools to pad a certain number of zeros to a number when printing it -- I may be able to use that in some way. But my situation is this: I have binary strings encoded as character arrays: '101010101', etc. I need to have the bit strings to be of a certain length. For example, if that length was 10, '101' would need seven zeros padded on the front: '0000000101', and '111111111' would need one zero padded on the front: '0111111111'.
Is there a quick way where I can have that number of zeros needed (10-numel(num)) padded on the front?
PS - I love the de2bi function where you can specify the number of bits but I am creating really long bit strings and that function only works for numbers less than 2^53-1.
0 个评论
回答(2 个)
Walter Roberson
2012-2-3
>> sprintf('%010s', '101')
ans =
0000000101
This is a little obscure but works just fine.
Alternately,
S = '101';
[repmat('0', 1, 10 - length(S)], S]
4 个评论
Sean de Wolski
2012-2-3
To pad a single string:
sprintf('%010s','11');
To pad a cell array of string:
C = {'010';'1';'0111';'01010101'};
D = cellfun(@(x)sprintf('%010s',x),C,'uni',false);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!