Create a string array (MxN) where each element is a repeated character based off a numeric array (MxN)

2 ビュー (過去 30 日間)
I want to create a string array (MxN) of a repeated character. Each element of the string array has the character repeated based on a number in a numeric array (MxN).
For example, if I had a numeric array as such:
A =
4 0
1 8
And I wanted to repeat the "#" character, I want to create a string array like this:
B =
2×2 string array
"####" ""
"#" "########"
The actual array I want to do this on is 7500x10 so other than a nested for-loop is there a more elegant way of getting my desired result?
Thanks
Carl

採用された回答

Bhaskar R
Bhaskar R 2019 年 11 月 25 日
B = string(cellfun(@(x)repelem('#', x), num2cell(A), 'UniformOutput', false));
  3 件のコメント
Bhaskar R
Bhaskar R 2019 年 11 月 25 日
Hahaha, I think your version is less tha R2016b. Data type String is introduced in R2016b.
Anyway your answer is more suitable than mine, Carl asked for string matrix output, pass your answer to string thats it. :-)
B = string(arrayfun(@(x) repmat('#',1,x),A, 'UniformOutput', false))
Carl
Carl 2019 年 11 月 25 日
Cheers Bhaskar, works a treat!

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

その他の回答 (1 件)

Philippe Lebel
Philippe Lebel 2019 年 11 月 25 日
try this:
B = arrayfun(@(x) repmat('#',1,x),A, 'UniformOutput', false)
B =
'####' [1x0 char]
'#' '########'

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by