Bonjour,
Je cherche à écrire un programme qui compte le nombre de consonnes dans plusieurs mots. Pour ça, j'utilise 2 fonctions : countconsonants et isconsonant.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
function y = countconsonants(z)
z(1)
w = isconsonant(z(1))
y=sum(w);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
function v = isconsonant(string)
v = ismember(lower(string),'bcdfghjklmnpqrstvwxz');
disp(['v ' num2str(v)])
Et j'appelle ma fonction "principale" countconsonants ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
countconsonants({'Helloo', 'world.'})
Voici ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
ans = 
 
    'Helloo'
 
v 0
 
w =
 
     0
 
 
ans =
 
     0
J'ai rajouté des affichages pour voir où se situe le problème...Je ne comprends pas pourquoi la valeur de v est 0, ça devrait être le vecteur 1 1 1.
J'ai essayé en n'utilisant que la fonction isconsonant avec un seul mot en l'appelant ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
isconsonant('hello')
Voici ce que j'obtiens :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
v 1  0  1  1  0
 
ans =
 
     1     0     1     1     0
Ce qui est juste... Je pense que l'erreur est assez simple, mais je m'y connais pas beaucoup... est-ce dans l'appel de la fonction w = isconsonant(z(1)) ??

Merci de me mettre sur la voie