|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Inscription : février 2012 Messages : 82 ![]() |
bonsoir,
pour un vecteur de 16 éléments, je veux extraire les nombres de trailings ones(0=<t1=<3), puis on prend le maximum. exemple1: si vect=[2,3,1,-1,5,6,4,1,-1,1,2,-3,5,9,5] resultat t1=3 exemple2: si vect=[2,3,1,5,6,4,1,-1,2,-3,5,1,9,5,6,2] resultat t1=2 Code :
merci pour votre aide. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 788 ![]() |
Ca semble faire beaucoup de test.
Pourquoi ne pas mettre un petite boucle while dans ta boucle for qui lorsque tu trouve un 1 va parcourir la chaine. Si la chaine est a une taille comme tu le souhaites et qu'elle est maximale, tu sauvegarde la taille et la position.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots ! - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS. - Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci) - ton poste tu dois marquer quand la bonne réponse tu as obtenu.
|
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : août 2007 Messages : 4 095 ![]() |
Bonjour,
tu peux aussi t'inspirer de cette contribution : Taille et nombre d'éléments non nuls dans un vecteur
__________________
Pour une bonne utilisation des balises code c'est ici! Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sourcesLa nature est un livre écrit en langage mathématique. Galilée. |
|
|
00
|
|
|
#4 |
|
Inscription : février 2012 Messages : 82 ![]() |
bonjour,
mais pour notre cas le vecteur est composé des nombres différents de 1, pour notre algorithme on veut extraire seulement les vecteurs de 1. est ce qu'il existe une fonction dans matlab qui faire extraire les 1successives d'un vecteur? merci |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : août 2007 Messages : 4 095 ![]() |
Pour appliquer le code dans le lien ci-dessus, il suffit de mettre les valeurs différentes de 1 et -1 à 0 et de mettre les -1 à 1.
Maintenant tu peux aussi essayer la méthode proposé par ToTo13.
__________________
Pour une bonne utilisation des balises code c'est ici! Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sourcesLa nature est un livre écrit en langage mathématique. Galilée. |
|
|
00
|
|
|
#6 |
|
Inscription : février 2012 Messages : 82 ![]() |
mais comment changer les différents de 1 et -1 à0 ???
|
|
|
00
|
|
|
#7 |
![]() ![]() Fabien Grand-PerretDéveloppeur informatique Inscription : mars 2005 Messages : 467 ![]() |
|
|
|
00
|
|
|
#8 |
|
Inscription : février 2012 Messages : 82 ![]() |
merci bcp
|
|
|
00
|
|
|
#9 |
|
Inscription : février 2012 Messages : 82 ![]() |
bonjour,
pour le lien de magelan :Taille et nombre d'éléments non nuls dans un vecteur est ce que on peut extraiRe la chaine composée de 1 seulement de ce vecteur? |
|
|
00
|
|
|
#10 |
![]() ![]() Florent Ing. Aérospatiale Inscription : juin 2003 Messages : 572 ![]() |
Tu veux un tableau de 1?
Si tu veux retrouver ta chaine de 1 et -1 d'origine : Code :
vect(find(vin))%vin est le tableau de 0 et 1
__________________
Bientôt 10 ans sur DVP! Matlab 7.9.1.705 R2009b SP1 | XP SP3 Pas de question technique par MP, Merci |
|
|
00
|
|
|
#11 |
|
Inscription : février 2012 Messages : 82 ![]() |
pour notre programme , j'ai besoin seulement de la chaine de 1 pour le maximum de snz.donc comment peut on extraire seulement la chaine qui correspond à max(snz).
merci tu m'as bcp aidé. |
|
|
00
|
|
|
#12 | |
![]() ![]() Fabien Grand-PerretDéveloppeur informatique Inscription : mars 2005 Messages : 467 ![]() |
Citation:
Code :
vect(vin)%vin est le tableau de 0 et 1 |
|
|
|
00
|
|
|
#13 |
![]() ![]() Fabien Grand-PerretDéveloppeur informatique Inscription : mars 2005 Messages : 467 ![]() |
|
|
|
00
|
|
|
#14 | ||
|
Membre chevronné
![]() |
Salut,
Tu peux bien sur n'avoir que la taille max de snz ainsi que la position du vecteur. Voici ce que ca pourrait donner en reprenant ton exemple: Code :
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Florent Ing. Aérospatiale Inscription : juin 2003 Messages : 572 ![]() |
Pour compléter la réponse de Merel, si tu veux avoir ta suite de 1 et -1 la plus longue, tu l'obtiens en allant lire les indices b à a+b-1 compris :
Code :
vect(b+[0:a-1]) %reprendre le vecteur "vect" original
__________________
Bientôt 10 ans sur DVP! Matlab 7.9.1.705 R2009b SP1 | XP SP3 Pas de question technique par MP, Merci |
|
|
00
|
|
|
#16 |
|
Inscription : février 2012 Messages : 82 ![]() |
désolé pour le retard, à cause de l'internet
merci bien pour vos réponses pour l'exemple: vect=[2,3,1,-1,5,6,4,1,-1,1,2,-3,5,9,5] dans ce cas: max(snz)=3 on veut le resultat final (extraction du vecteur qui correspond à 3): [1,-1,1]. |
|
|
01
|
|
|
#17 |
|
Inscription : février 2012 Messages : 82 ![]() |
j'ai essayé avec : vect(b+[0:a-1])
mais j'ai pas obtenu le vecteur [1,-1,1]. votre aide svp. |
|
|
00
|
|
|
#18 | |||
![]() ![]() Jérôme Inscription : septembre 2009 Messages : 5 167 ![]() |
Bonjour,
Si tu souhaites ré-obtenir tes -1 et 1, ce n'est pas une variable vect modifiée pour n'avoir que des 1 et 0 qu'il faut le faire De plus ce n'est pas directement b qu'il faut prendre, mais idx(b), idx étant le résultat de find(). Code :
__________________
Débutant en MATLAB ? Vous voulez faire une Interface Graphique ? Les Tutoriels et la FAQ sont là pour vous aider ![]() Une erreur ? "Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).Citation:
|
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com