Converting first column unique values to number

조회 수: 6 (최근 30일)
Bewler
Bewler 2019년 6월 28일
댓글: Bewler 2019년 7월 1일
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
dpb
dpb 2019년 6월 28일
Keeping the same number or just 1:NoUnique values?
Bewler
Bewler 2019년 6월 28일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2019년 6월 28일
편집: Matt J 2019년 6월 28일
[~,~,u]=unique(yourTable{:,1},'stable');
yourTable{:,1}=num2cell(u)
  댓글 수: 4
Matt J
Matt J 2019년 6월 29일
편집: Matt J 2019년 6월 29일
@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 2019년 7월 1일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Other Formats에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by