how to solve this error

1 view (last 30 days)
Mohamuud hassan
Mohamuud hassan on 18 May 2015
Commented: Walter Roberson on 18 May 2015
hello all, i have this error with this code
Undefined function 'eq' for input arguments of type 'cell'.
Error in e_extructing (line 107)
if(Ex_domain(loop7_out)=='hotmail.com')
Ex_domain =regexp(k2, '(?<=@).+$', 'match' )
for loop7_out=1:length(Ex_domain)
if(Ex_domain(loop7_out)=='hotmail.com')
Ex_Z(loop7_out)=0
elseif(Ex_domain{loop7_out}=='gmail.com')
Ex_Z(loop7_out)=1
elseif(Ex_domain{loop7_out}=='yahoo.com')
Ex_Z(loop7_out)=2
elseif(Ex_domain{loop7_out}=='mail.com')
Ex_Z(loop7_out)=3
elseif(Ex_domain{loop7_out}=='live.com')
Ex_Z(loop7_out)=4
elseif(Ex_domain{loop7_out}=='msn.com')
Ex_Z(loop7_out)=5
elseif(Ex_domain{loop7_out}=='myspace.com')
Ex_Z(loop7_out)=6
elseif(Ex_domain{loop7_out}=='mynet.com')
Ex_Z(loop7_out)=7
end
end

Accepted Answer

Chad Greene
Chad Greene on 18 May 2015
Unfortunately, you can't use == when comparing strings. Replace
Ex_domain(loop7_out)=='hotmail.com'
and all the similar logical checks with
strcmpi(Ex_domain(loop7_out),'hotmail.com')
  2 Comments
Chad Greene
Chad Greene on 18 May 2015
Better yet, skip the ifs and elseifs:
Ex_domain = {'msn.com','msn.com','yahoo.com'};
domains = {'hotmail.com','gmail.com','yahoo.com','mail.com','live.com','msn.com','myspace.com','mynet.com'};
Ex_Z = NaN(size(Ex_domain));
for k = 1:length(Ex_domain)
Ex_Z(k) = find(strcmpi(domains,Ex_domain(k)))-1;
end
Walter Roberson
Walter Roberson on 18 May 2015
That will happen to work, but better would be
strcmpi(Ex_domain{loop7_out},'hotmail.com')

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!