Azzera filtri
Azzera filtri

Modifying a string

23 visualizzazioni (ultimi 30 giorni)
joseph Frank
joseph Frank il 15 Ago 2011
Hi,
I have a cell array where in each cell I have an alpha numeric number of IDs. I want to adjust this array in a way that if the ID is less than 6 digits (assume 777T) i want to add zeros before it to make it a 6 character ID (00777T). I have no clue how to do it.Any help is appreciated.

Risposta accettata

Fangjun Jiang
Fangjun Jiang il 15 Ago 2011
Use strjust().
a={'777T','123456','23A'};
b=char(a(:));
c=strjust(b,'right');
d=cellstr(c);
e=strrep(d,' ','0');
or make it shorter:
a={'777T','123456','23A'};
c=strjust(char(a(:)),'right');
e=strrep(cellstr(c), ' ','0');

Più risposte (2)

Paulo Silva
Paulo Silva il 15 Ago 2011
c={{'777T'},{'111T'},{'222T'}}
for n=1:numel(c)
c{n}=['00' char(c{n})];
end
c
or this alternative:
c={{'777T'},{'111T'},{'222T'}}
c=cellfun(@(x) ['00' char(x)],c,'uni',false)
With predefined number of characters
c={{'777T'},{'111T'},{'222T'}}
c=cellfun(@(x) [repmat('0',1,abs(6-numel(char(x)))) char(x)],...
c,'uni',false)

joseph Frank
joseph Frank il 15 Ago 2011
that sounds good but how can i figure out how many zeros to add. c in your example consists of 4 characters but in my case it could be 3, 4 , 5 or 6 for example: 0 votes Paulo Silva answered 14 minutes ago
c={{'7177T'},{'111T'},{'22233T'}}

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by