identify specific unique columns in a cell array
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jorge Luis Paredes Estacio
le 8 Sep 2023
Commenté : Jorge Luis Paredes Estacio
le 8 Sep 2023
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 commentaires
Réponse acceptée
Dyuman Joshi
le 8 Sep 2023
Modifié(e) : Dyuman Joshi
le 8 Sep 2023
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,:)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Multidimensional Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!