what am I doing wrong with ismember?
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Samyukta Ramnath
le 6 Juil 2013
Commenté : Stephen23
le 24 Mar 2017
I am trying to use ismember to find out whether a member of a cell is present in another cell array of strings. In one script, I did this -
if true
% code
end
stringyo = {'yo','I','love','you'};
test_stringyo = {'yo','you','look','funny'};
ismember(stringyo,test_stringyo{1})
which works well, gives the array 1 0 0 0, and in another script,
if true
% code
end
global Tag_sequences; % This is another cell array of strings defined elsewhere
Tags = {'DD','NN','PP','PN','ADJ','ADV','VB','PNN'};
ismember(Tag_sequences,Tags{1})
But this gives an error : Error using cell/ismember>cellismemberlegacy (line 131) Input A of class cell and input B of class char must be cell arrays of strings, unless one is a string.
2 commentaires
Réponse acceptée
the cyclist
le 6 Juil 2013
Modifié(e) : the cyclist
le 6 Juil 2013
I suggest you check whether Tag_sequences is really a cell array of strings [as required by ismember()]. You can do this easily:
>> iscellstr(Tag_sequences)
I am guessing that that returns false.
You can then identify exactly which cell or cells are causing the problem:
>> cellfun(@ischar,Tag_sequences)
5 commentaires
Zain ul Aabidin
le 24 Mar 2017
Then how to convert Tag_sequences = {7,'b','c'} to Tag_sequences = {'7','b','c'};
Stephen23
le 24 Mar 2017
@Zain ul Aabidin:
>> C = {7,'b','c'};
>> cellfun(@num2str,C,'uni',0)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!