identify specific unique columns in a cell array
조회 수: 2 (최근 30일)
이전 댓글 표시
Jorge Luis Paredes Estacio
2023년 9월 8일
댓글: Jorge Luis Paredes Estacio
2023년 9월 8일
Hello, I have the following cell array as an example:
Stations=
'CID' 'C17E' 'C17E' 200 "2016/9/12" "14:46:6" 0
'CID' 'BC54' 'BC54' 200 "2016/9/13" "6:26:2" 0
'SGC' 'BAR2' 'BAR2' 200 "2016/9/13" "8:12:15" 0
'SGC' 'CBARI' 'BAR2' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBET2' 'BET' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBUIS' 'CBUIS' 200 "2016/9/14" "1:58:31" 0
'SGC' 'CBET2' 'BET' 200 "2018/7/22" "7:50:30" 1
'CID' 'C17E' 'C17E' 200 "2014/2/2" "14:46:6" 0
'SGC' 'CBUIS' 'CBUIS' 200 "2017/7/1" "1:50:31" 0
I would like to identify unique values considering the first, second, third and fourth column and obtain the following matrix
Reduced_stations=
'CID' 'C17E' 'C17E' 200 "2016/9/12" "14:46:6" 0
'CID' 'BC54' 'BC54' 200 "2016/9/13" "6:26:2" 0
'SGC' 'BAR2' 'BAR2' 200 "2016/9/13" "8:12:15" 0
'SGC' 'CBARI' 'BAR2' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBET2' 'BET' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBUIS' 'CBUIS' 200 "2016/9/14" "1:58:31" 0
I would appreciate the help. By the way, the cell array (Stations) does not have the same data type.
댓글 수: 0
채택된 답변
Dyuman Joshi
2023년 9월 8일
편집: Dyuman Joshi
2023년 9월 8일
Here's one approach -
%Input
Stations = {'CID' 'C17E' 'C17E' 200 "2016/9/12" "14:46:6" 0
'CID' 'BC54' 'BC54' 200 "2016/9/13" "6:26:2" 0
'SGC' 'BAR2' 'BAR2' 200 "2016/9/13" "8:12:15" 0
'SGC' 'CBARI' 'BAR2' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBET2' 'BET' 200 "2016/9/14" "1:58:31" 1
'SGC' 'CBUIS' 'CBUIS' 200 "2016/9/14" "1:58:31" 0
'SGC' 'CBET2' 'BET' 200 "2018/7/22" "7:50:30" 1
'CID' 'C17E' 'C17E' 200 "2014/2/2" "14:46:6" 0
'SGC' 'CBUIS' 'CBUIS' 200 "2017/7/1" "1:50:31" 0};
%Convert to table, as the function unique() can be used for a table
t = cell2table(Stations);
%Columns of interest
col = 1:4;
%Get the indices of the unique combinations of the columns of interest
%in the same order as they occur in the input
[~,idx]=unique(t(:,col),'stable');
%Get the output in terms of table
outtable = t(idx,:)
%or
%Get the output in terms of cell array
outcell = Stations(idx,:)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!