Error using == function when trying to group certain data
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
MZINGAYE MUBAYA
am 19 Feb. 2019
Kommentiert: MZINGAYE MUBAYA
am 21 Feb. 2019
Im trying to run a code to create a subset of a group i.e females who are credit worthy but im struggling with getting program to recognize f for females
>> worthyf = credit(credit.gender=='f' & credit.Risk_class==1,:);
Undefined operator '==' for input arguments of type 'cell'.
0 Kommentare
Akzeptierte Antwort
Jesus Sanchez
am 19 Feb. 2019
== only works for numbers. You are comparing strings and therefore you need to use "strcmp"
An example in your code:
worthyf = credit(strcmp(credit.gender,'f') & credit.Risk_class==1,:);
5 Kommentare
Guillaume
am 20 Feb. 2019
Actually, I completely forgot the most relevant class here, the newish string class. This has an overloaded == operator that is equivalent to strcmp. Unfortunately, that's going to lead to lot of confusion for beginner because indeed == doesn't work as they expect for char arrays (which unfortunately many people call strings) but does work for actual strings.
s = "somethingelse"; %an actual matlab string
if s == "something"
disp('it''s something');
elseif s == "somethingelse"
disp('it''something else');
end
works as expected
s = 'something else'
if s == 'something' %proper syntax: if strcmp(s, 'something')
disp('it''s something');
elseif s == 'somethingelse'
disp('it''something else');
end
does not work. you have to use strcmp. strcmp also works for actual strings, so it may be safer to always use that.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu String finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!