Undefined operator '==' for input arguments of type 'cell'.
66 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
UMA RAMASAMY
el 26 de Jun. de 2019
Comentada: UMA RAMASAMY
el 26 de Jun. de 2019
load hospital
hospital.Properties.ObsNames(1:10)
dsMale = hospital(hospital.Sex=='Male',:);
dsMale(1:10,{'LastName','Sex'})
this above code is present in matlab documentation this work well....
where as i tried in different dataset....
[~,~, AllData] =xlsread('play.xls','Sheet1','A1:E15');
student = cell2dataset(AllData);
ds1=student(student.class=='first',:) % i need to store in another dataset student details who's class is first
i get an error...Undefined operator '==' for input arguments of type 'cell'.
0 comentarios
Respuesta aceptada
Guillaume
el 26 de Jun. de 2019
Use strcmp to compare a cell array of char vectors to another char vector:
ds1 = student(strcmp(student.class, 'first'), :)
4 comentarios
Guillaume
el 26 de Jun. de 2019
Sure, but as said for char arrays you can't use ==, you have to use strcmp, so:
student(strcmp(student.class, 'first') & student.mark >= 80, :)
If there is only a few different values in class, you could convert it to categorical, which uses == for comparison:
student.class = categorical(student.class); %only needed once after loading the table
%...
student(student.class == 'first' & student.mark >= 80, :) %class is categorical so can use ==
Alternatively, you can compare to a string (using "" instead of ''). strings also use == for comparison.
%optional, convert cell array of char vectors to string array
%student.class = string(student.class);
student(student.class == "first" & student.mark >= 80, :) %string comparison. can use ==
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and 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!