How to pad zero in string using sprintf

27 views (last 30 days)
Nimas
Nimas on 5 Jan 2023
Commented: Fangjun Jiang on 5 Jan 2023
Hello, I have some string
'1010'
'111'
'010'
'10'
'10111'
How to pad zero after the string by using sprint function to be like this
'10100'
'11100'
'01000'
'10000'
'10111'

Answers (3)

Bora Eryilmaz
Bora Eryilmaz on 5 Jan 2023
This should work on both char arrays as well as strings:
a = { '1010'
'111'
'010'
'10'
'10111'}
a = 5×1 cell array
{'1010' } {'111' } {'010' } {'10' } {'10111'}
b = pad(a, '0')
b = 5×1 cell array
{'10100'} {'11100'} {'01000'} {'10000'} {'10111'}

Fangjun Jiang
Fangjun Jiang on 5 Jan 2023
a={'1010'
'111'
'010'
'10'
'10111'};
b=char(a)
b = 5×5 char array
'1010 ' '111 ' '010 ' '10 ' '10111'
b(b==' ')='0'
b = 5×5 char array
'10100' '11100' '01000' '10000' '10111'

the cyclist
the cyclist on 5 Jan 2023
@Fangjun Jiang gave a great answer for character arrays (which is what you show that you have).
This is a case where MATLAB's new-ish (R2016) string data type might suit your need better, if you can go upstream in your code to use that type.
string = ["1010";
"111";
"010";
"10";
"10111"];
pad(string,"0")
ans = 5×1 string array
"10100" "11100" "01000" "10000" "10111"

Community Treasure Hunt

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

Start Hunting!