MATLAB Answers

Pad a character array with n zeros

58 views (last 30 days)
Michael on 3 Feb 2012
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.

Answers (2)

Walter Roberson
Walter Roberson on 3 Feb 2012
>> sprintf('%010s', '101')
ans =
This is a little obscure but works just fine.
S = '101';
[repmat('0', 1, 10 - length(S)], S]
Sean de Wolski
Sean de Wolski on 3 Feb 2012
Learn something new every day (hour).

Sign in to comment.

Sean de Wolski
Sean de Wolski on 3 Feb 2012
To pad a single string:
To pad a cell array of string:
C = {'010';'1';'0111';'01010101'};
D = cellfun(@(x)sprintf('%010s',x),C,'uni',false);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!