How to pad all numbers in array ?

1 Ansicht (letzte 30 Tage)
RuiQi
RuiQi am 11 Dez. 2016
Kommentiert: RuiQi am 11 Dez. 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 Kommentar
Stephen23
Stephen23 am 11 Dez. 2016
Bearbeitet: Stephen23 am 11 Dez. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 11 Dez. 2016
b = sprintf(' %06d',a{:});
^ add this space
  3 Kommentare
Stephen23
Stephen23 am 11 Dez. 2016
Bearbeitet: Stephen23 am 11 Dez. 2016
There is no simple way to create a cell array of strings, but this works:
c = cellfun(@(n)sprintf('%06d',n),a,'UniformOutput',false)
Or you can read about the undocumented function sprintfc:
RuiQi
RuiQi am 11 Dez. 2016
wow sprintfc works very nicely. and i will also read through the cellfun

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 11 Dez. 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 Kommentare
RuiQi
RuiQi am 11 Dez. 2016
training_set = cell(size(train,1),1);
for i=1:size(train,1)
training_set{i,1} = sprintf('%06d',train(i));
end
this works but im looking for a method without using the for loop if its possible
RuiQi
RuiQi am 11 Dez. 2016
b = sprintf('%06d',[a{:}]);
doesnt work as well

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by