how to compare non numerical values or character strings element-wise between a table and a one dimensional array ?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Apurva Jariwala
le 19 Mar 2019
Commenté : Apurva Jariwala
le 19 Mar 2019
IrisD = readtable('irisdata.csv');
classes = categorical(IrisD{:,5});
Icats = categories(classes);
setosa = IrisD((IrisD(:,5)==Icats(1)),:);
Ttest1 = setosa(1:40,:);
Ttrain1 = setosa(41:50,:);
versicolor = IrisD((IrisD(:,5)==Icats(2)),:);
Ttest2 = versicolor(1:40,:);
Ttrain2 = versicolor(41:50,:);
virginica = IrisD((IrisD(:,5)==Icats(3)),:);
Ttest3 = virginica(1:40,:);
Ttrain3 = virginica(41:50,:);
Ttest = [Ttest1; Ttest2; Ttest3];
Ttrain = [Ttrain1; Ttrain2; Ttrain3];
I am getting this error: Undefined operator '==' for input arguments of type 'table'.
I am trying to split the Iris database into a training and testing dataset, with the first 40 values of each class being in the testing dataset and the remaining 10 for each class be in the training dataset.
6 commentaires
Peter Perkins
le 19 Mar 2019
Apurva, IrisD{:,5} certainly will work.
But I suggest that you use names, and dot indexing, and ==. So you code becomes
setosa = IrisD(IrisD.Species == Icats(1),:)
or maybe even
setosa = IrisD(IrisD.Species == 'setosa',:)
Isn't that nicer?
Réponse acceptée
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Categorical Arrays dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!