How to delete duplicates and replace values in an array?

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?

 Respuesta aceptada

Simon Chan
Simon Chan el 20 de Ag. de 2021
Editada: Simon Chan el 20 de Ag. de 2021
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 comentarios

Is this something I can print into a txt file?
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
Thanks Cris, forgot it is string data.
Use function writetable to put it in a text file
writetable(G,'result.txt')

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2021a

Etiquetas

Preguntada:

el 20 de Ag. de 2021

Comentada:

el 20 de Ag. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by