How to pad all numbers in array ?

6 views (last 30 days)
RuiQi
RuiQi on 11 Dec 2016
Commented: RuiQi on 11 Dec 2016
How can I pad a vector of number with zeros ? I am able to do it with a for loop but I was wondering if there is a neater way to do it ?
For example,
a = [1 2 3 4 5];
b = sprintf('%06d',a);
gives me '000001000002000003000004000005'
I would like it to be [000001 000002 .....];
  1 Comment
Stephen23
Stephen23 on 11 Dec 2016
Floating point numeric values do not store explicit leading zeros. Even if you typed them, the zeros have no mathematical significance:
>> [000001,000002]==[1,2]
ans =
1 1

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 11 Dec 2016
b = sprintf(' %06d',a{:});
^ add this space
  3 Comments
RuiQi
RuiQi on 11 Dec 2016
wow sprintfc works very nicely. and i will also read through the cellfun

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 11 Dec 2016
What does that mean? If they're strings, fine -- you can have leading zeros. But if it's a number leading zeros are ignored, so printing or using 000003 will be just the same use using 3. So are you looking for a cell array? If so, see the FAQ: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F
  3 Comments
RuiQi
RuiQi on 11 Dec 2016
b = sprintf('%06d',[a{:}]);
doesnt work as well

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by