How to pad zero in string using sprintf

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'

回答 (3 件)

Bora Eryilmaz
Bora Eryilmaz 2023 年 1 月 5 日

2 投票

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'}

3 件のコメント

the cyclist
the cyclist 2023 年 1 月 5 日
Ah, didn't know that!
Stephen23
Stephen23 2023 年 1 月 5 日
Fangjun Jiang
Fangjun Jiang 2023 年 1 月 5 日
good to know

サインインしてコメントする。

Fangjun Jiang
Fangjun Jiang 2023 年 1 月 5 日

1 投票

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 2023 年 1 月 5 日

1 投票

@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"

カテゴリ

タグ

質問済み:

2023 年 1 月 5 日

コメント済み:

2023 年 1 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by