Error using == function when trying to group certain data

1 回表示 (過去 30 日間)
MZINGAYE MUBAYA
MZINGAYE MUBAYA 2019 年 2 月 19 日
コメント済み: MZINGAYE MUBAYA 2019 年 2 月 21 日
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.
MZINGAYE MUBAYA
MZINGAYE MUBAYA 2019 年 2 月 21 日
So basically use strcmp for my data set

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeString についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by