Remove '00' the first two digit to '0' in cell

2 ビュー (過去 30 日間)
eko supriyadi
eko supriyadi 2023 年 1 月 12 日
コメント済み: Walter Roberson 2023 年 1 月 12 日
Hi community,
Suppose i have array in cell:
ab={'10300' '20257' '30073' '40080' '55011' '82132' '0' '0' '0'; '10321' '20258' '30084' '40091' '56024' '00822' '0' '0' '0'};
the question how change '00822' that contain '00' the first two digit to '0', so the result i want is:
ab={'10300' '20257' '30073' '40080' '55011' '82132' '0' '0' '0'; '10321' '20258' '30084' '40091' '56024' '0' '0' '0' '0'};
thx

採用された回答

Walter Roberson
Walter Roberson 2023 年 1 月 12 日
Are you sure you do not want to remove all leading zeros (leaving, of course a lone 0) ?
ab={'10300' '020257' '30073' '00080' '55011' '82132' '0' '00' '0'; '10321' '20258' '30084' '40091' '56024' '00822' '0' '0' '0'}
ab = 2×9 cell array
{'10300'} {'020257'} {'30073'} {'00080'} {'55011'} {'82132'} {'0'} {'00'} {'0'} {'10321'} {'20258' } {'30084'} {'40091'} {'56024'} {'00822'} {'0'} {'0' } {'0'}
ab_remove_00_only = regexprep(ab, '^00(?=\d)', '')
ab_remove_00_only = 2×9 cell array
{'10300'} {'020257'} {'30073'} {'080' } {'55011'} {'82132'} {'0'} {'00'} {'0'} {'10321'} {'20258' } {'30084'} {'40091'} {'56024'} {'822' } {'0'} {'0' } {'0'}
ab_remove_all_leading_0 = regexprep(ab, '^0+(?=\d)', '')
ab_remove_all_leading_0 = 2×9 cell array
{'10300'} {'20257'} {'30073'} {'80' } {'55011'} {'82132'} {'0'} {'0'} {'0'} {'10321'} {'20258'} {'30084'} {'40091'} {'56024'} {'822' } {'0'} {'0'} {'0'}
  1 件のコメント
Walter Roberson
Walter Roberson 2023 年 1 月 12 日
After re-reading the question:
ab={'10300' '020257' '30073' '00080' '55011' '82132' '0' '00' '0'; '10321' '20258' '30084' '40091' '56024' '00822' '0' '0' '0'}
ab = 2×9 cell array
{'10300'} {'020257'} {'30073'} {'00080'} {'55011'} {'82132'} {'0'} {'00'} {'0'} {'10321'} {'20258' } {'30084'} {'40091'} {'56024'} {'00822'} {'0'} {'0' } {'0'}
ab_zap_00 = regexprep(ab, '^00.*', '0')
ab_zap_00 = 2×9 cell array
{'10300'} {'020257'} {'30073'} {'0' } {'55011'} {'82132'} {'0'} {'0'} {'0'} {'10321'} {'20258' } {'30084'} {'40091'} {'56024'} {'0' } {'0'} {'0'} {'0'}

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

その他の回答 (1 件)

Karim
Karim 2023 年 1 月 12 日
Hi, you can do that with the startswith function of matlab:
ab = {'10300' '20257' '30073' '40080' '55011' '82132' '0' '0' '0'; '10321' '20258' '30084' '40091' '56024' '00822' '0' '0' '0'}
ab = 2×9 cell array
{'10300'} {'20257'} {'30073'} {'40080'} {'55011'} {'82132'} {'0'} {'0'} {'0'} {'10321'} {'20258'} {'30084'} {'40091'} {'56024'} {'00822'} {'0'} {'0'} {'0'}
% use the 'starts with' function to determine the locations
TF = startsWith(ab,"00")
TF = 2×9 logical array
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
% replace with a single '0'
ab(TF) = {'0'}
ab = 2×9 cell array
{'10300'} {'20257'} {'30073'} {'40080'} {'55011'} {'82132'} {'0'} {'0'} {'0'} {'10321'} {'20258'} {'30084'} {'40091'} {'56024'} {'0' } {'0'} {'0'} {'0'}

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by