Character Frequency of String

20 ビュー (過去 30 日間)
Sydney Schapansky
Sydney Schapansky 2021 年 11 月 5 日
回答済み: Sayan 2022 年 11 月 25 日
I'm trying to figure out how to get groups and group counts for a string.
For example, if you input
string = "SunnyDay"
the output would be:
S: 1
U: 1
N: 2
Y: 2
D: 1
A: 1
  3 件のコメント
Paul
Paul 2022 年 9 月 17 日
I was quite curious as to how this Question popped up today as if it had been asked on 5 Nov 2021 with no activity since then. Any idea how that happened?
Stephen23
Stephen23 2022 年 9 月 17 日
"Any idea how that happened?"
Because of Kuchi's comment.

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

回答 (2 件)

Paul
Paul 2022 年 9 月 17 日
Using the new dictionary in 2022b and the on-point example from this blog post
str = "SunnyDay";
chr = char(str);
d = dictionary(string.empty,double.empty);
for c = chr
if isKey(d,c) % If this char exists in the dictionary
d(c) = d(c) +1; % Increment the value associated with that char by 1.
else
d(c) = 1; % Initialise a new char in the dictionary with the value set to 1.
end
end
d
d =
dictionary (stringdouble) with 6 entries: "S" ⟼ 1 "u" ⟼ 1 "n" ⟼ 2 "y" ⟼ 2 "D" ⟼ 1 "a" ⟼ 1
I tried making the dictionary key a char, but that resulted in an error.

Sayan
Sayan 2022 年 11 月 25 日
str = "SunnyDay";
chr = char(str);
d = dictionary(string.empty,double.empty);
for c = chr
if isKey(d,c) % If this char exists in the dictionary
d(c) = d(c) +1; % Increment the value associated with that char by 1.
else
d(c) = 1; % Initialise a new char in the dictionary with the value set to 1.
end
end

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by