Error using == function when trying to group certain data

1 次查看(过去 30 天)
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'.

采纳的回答

Jesus Sanchez
Jesus Sanchez 2019-2-19
== 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 个评论
Guillaume
Guillaume 2019-2-20
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by