salut,
regarde cette discussion :
http://www.developpez.net/forums/d12...tions-tableau/
avec untu devrais t'en sortir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sort
Merci !
Très astucieux!
Par contre j'ai du mal à comprendre comment... un vrai tour de carte!
Je vais m'y penché et je reviens avec le code qui se prête a mon application au cas un autre bougre comme moi tomberais sur mon poste.
encore merci !
Voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 trieA=sort(vecteurA); index=find(diff([trieA;nan])); occurence=diff([0,index]); indice=trieA(index); resultatB=zeros(1,max(vecteurA)-min(vecteurA)); resultatB(indice-min(vecteurA)+1)=occurence;
Il me semble qu'il y a une petite erreur de concaténation.
J'espère que tu as pu comprendre tout ce que tu as codé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 trieA=sort(vecteurA); index=find(diff([trieA,nan])); occurence=diff([0,index]); indice=trieA(index); resultatB=zeros(1,max(vecteurA)-min(vecteurA)); resultatB(indice-min(vecteurA)+1)=occurence;
non, c'est que dans mon cas précis vecteurA est un vecteur colonne et la fonction "sort" renvoie à trieA un vecteur de même dimension donc ma concaténation est correct.
Mais il est vrais que si dans un autre cas le vecteur d'entrée était un vecteur ligne il aurait été préférable d'y mettre une virgule.
Encore merci à toi Merel.
autre méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bins=max(vecteurA)-min(vecteurB); [resultatB,xout]=hist(vecteurA,bins);
bien vu, mais y a une erreur
et je ferais plutot
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bins=max(vecteurA)-min(vecteurA)+1; [resultatB,xout]=hist(vecteurA,bins);
(xout on s'en fout)
Code : Sélectionner tout - Visualiser dans une fenêtre à part resultatB=histc(vecteurA,min(vecteurA):max(vecteurA));
Une autre solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A = [1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 8 8 8 8 11 11 11 11 11]; uA = unique(A); B(uA) = histc(A,uA);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager