[MATLAB] comparer des éléments d'une cellule

Fermé
Sinistro Messages postés 9 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 3 mars 2019 - 16 févr. 2008 à 13:51
 yababas - 22 févr. 2008 à 12:42
Bonjour à tous,

Voilà, j'aimerais créer un programme MATLAB qui cherche dans une liste, un prénom voulu. Mes prénoms n'ont évidemment pas tous la même taille donc j'utilise un format cell pour ma variable 'liste'.

Le problème est que je ne peux pas comparer deux éléments d'une cellule : par ex: Function '==' is not defined for values of class 'cell'. Et la comparaison est bien sûre essentielle si je veux arriver à faire tourner mon programme.

Comment puis-je éviter ce problème ?

Merci d'avance

1 réponse

il faut utiliser la comande "strcmp".

Par exemple : si TAB est un cell array, :
BoolIdentique = strcmp(TAB{i},TAB{j})

BoolIdentique vaut true si les deux chaînes de caractères sont identiques. Et surtout, ça marche même si les deux chaînes ne sont pas de la même longueur.

Plus d'info sous help strcmp.
Liste des fonctions traitant des strings : help strfun

Par rapport aux cell, juste une précision :
Tu tapes : TAB{1} = 'Yababas';
Si tu fait X = TAB{1} (avec les accolages), alors X sera une chaine de caractère.
Si tu fait X = TAB(1) (avec des parenthèses), alors là X sera une cellule, contenant une chaîne de caractère.
C'est toute la finesse des cell array qui les rend si poétiques !

Voilà.
++
9