Converting first column unique values to number

2 visualizaciones (últimos 30 días)
Bewler
Bewler el 28 de Jun. de 2019
Comentada: Bewler el 1 de Jul. de 2019
I have a table that I need to use for another function.
Currently the table is setup as
Base1,x,y,z
Base1,x,y,z
Building2,x,y,z
Building2,x,y,z
Complex3,x,y,z
Complex3,x,y,z
Complex3,x,y,z
What I would like to do is rename the first column if they have unique names so Base1 would switch to 1, Building2 switches to 2 ect...
Is there an easy way to rename all of the first column based on if the values are unique or not?
  2 comentarios
dpb
dpb el 28 de Jun. de 2019
Keeping the same number or just 1:NoUnique values?
Bewler
Bewler el 28 de Jun. de 2019
There isn't normally a number in the first colum, its actually A,B,C. I just want to convert any similar values in column 1 to numbers starting at 1:n.

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 28 de Jun. de 2019
Editada: Matt J el 28 de Jun. de 2019
[~,~,u]=unique(yourTable{:,1},'stable');
yourTable{:,1}=num2cell(u)
  4 comentarios
Matt J
Matt J el 29 de Jun. de 2019
Editada: Matt J el 29 de Jun. de 2019
@Bewler,
To replace the column with variables of a different type, you need to use dot-indexing,
[~,~,u]=unique(yourTable{:,1},'stable');
yourTable.Var1=u;
where 'Var1' is the variable name for the column in the table.
Bewler
Bewler el 1 de Jul. de 2019
Stephen. The issue is we have to convert due to the original input of Var1 of the table as a cell and we can't directly overwrite the variable with a double. I'm not familiar with dot-indexing but I'll explore this as well. Not too familiar with tables and why we can't easily overwrite the cell as a double.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by