how to compare non numerical values or character strings element-wise between a table and a one dimensional array ?
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Apurva Jariwala
 el 19 de Mzo. de 2019
  
    
    
    
    
    Comentada: Apurva Jariwala
 el 19 de Mzo. de 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 comentarios
  Peter Perkins
    
 el 19 de Mzo. de 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?
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
				Más información sobre Categorical Arrays en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


