How to delete duplicates and replace values in an array?

5 ビュー (過去 30 日間)
Colin TaylorMays
Colin TaylorMays 2021 年 8 月 20 日
コメント済み: Simon Chan 2021 年 8 月 20 日
Hey, I'm a little stumped on my personal project. I'm trying to have MatLab check a list of ingredients, delete duplicates, and rewrite the remaining ingredient to show how many times its been mentioned. Here's an example:
[("White Onion"),("Potato"),("White Onion"),("Fruit")] -> [("2x White Onion"),("Potato"),("Fruit")]
I know unique() is a command I could use, but how would I rewrite that individual value?

採用された回答

Simon Chan
Simon Chan 2021 年 8 月 20 日
編集済み: Simon Chan 2021 年 8 月 20 日
Create a table and use function groupsummary
Item=["White Onion";"Potato";"White Onion";"Fruit"];
T=table(Item,'VariableNames',{'Ingredients'});
G = groupsummary(T,"Ingredients","sum")
Result:
G =
3×2 table
Ingredients GroupCount
_____________ __________
"Fruit" 1
"Potato" 1
"White Onion" 2
  3 件のコメント
Cris LaPierre
Cris LaPierre 2021 年 8 月 20 日
Yes. Look at writetable
I would remove the method 'sum', as it doesn't make sense with string data.
ingrT = table(["White Onion","Potato","White Onion","Fruit"]','VariableNames',"ingredients");
groupsummary(ingrT,"ingredients")
ans = 3×2 table
ingredients GroupCount _____________ __________ "Fruit" 1 "Potato" 1 "White Onion" 2
Simon Chan
Simon Chan 2021 年 8 月 20 日
Thanks Cris, forgot it is string data.
Use function writetable to put it in a text file
writetable(G,'result.txt')

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by