Converting first column unique values to number

2 views (last 30 days)
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 Comments
dpb
dpb on 28 Jun 2019
Keeping the same number or just 1:NoUnique values?
Bewler
Bewler on 28 Jun 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.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 28 Jun 2019
Edited: Matt J on 28 Jun 2019
[~,~,u]=unique(yourTable{:,1},'stable');
yourTable{:,1}=num2cell(u)
  4 Comments
Matt J
Matt J on 29 Jun 2019
Edited: Matt J on 29 Jun 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 on 1 Jul 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.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!