|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Bonjour,
Supposons que j'ai plusieurs vecteurs comme suit pour une meme observation: Prex : Prex1...Prex10...Prexn Cotinv : Cotinv1...Cotinv10...Cotinvn Je crée temporairement pprex Je calcule dans un premier temps. pprex(i) = prex(i) / cotinv(i); Je voudrais récupérer le minimum du vecteur en me positionnant à un moment précis. point(i) = min(of pprex(debut)-pprex(i)); /* cela ne marche pas: syntaxe error il voudrait une virgule ou une parenthèse*/ Le tout se fait dans une boucle do i=debut à fin;. La question reviendrait à prendre le minimum des valeurs (1 à X) si je suis positionné en X...et de (1 à X+1) si je met replace en X+1. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour Mariam.
Comme ta boucle va bien de 1 à la fin de l'array, si tu es en X, les valeurs de ton vecteur pour X+1, X+2, etc. sont encore manquantes, donc non prises en compte par la fonction MIN. Tu peux donc faire le calcul avec MIN(OF pprex[*]) à chaque itération de la boucle, au fur et à mesure que tu remplis le vecteur pprex. Bon courage. Olivier |
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
La solution que tu proposes est intéressante dans le sens ou elle est permet de TOUJOURS avoir le minimum du vecteur quelque soit la position à laquelle on se trouve.
Pourtant cela est légèrement différent de ce que je souhaiterai car je voudrais le minimum des positions précédentes celle ou je me place (la ou je suis inclut). Voici un petit exemple pour illuster : Code :
Son résultat est: P1 P2 P3 P4 P5 P6 1 1 1 1 1 1 4 4 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 Moi je voudrais le résultat suivant: P1 P2 P3 P4 P5 P6 3 1 1 1 1 1 9 8 6 5 5 4 3 2 1 1 0 0 8 2 2 2 0 0 5 5 4 3 3 2 P1 = Code1, P2= min (Code1, Code2) P3=min (Code1, Code2, Code3) P4=min(Code1, Code2, Code3, Code4)...P6=min(code1-code6). Merci d'avance. |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Tu peux utiliser une variable tampon dans ta boucle dans laquelle tu stock le min.
Le min est calculé a chaque itération en le comparant avec l'observation courante. Le min est initialisé avec la première valeur du tableau.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Ah, mais les règles du jeu ont changé entre tes 2 posts ?! Au début, tu indiquais créer une nouvelle série de variables : les PPREX. Et dans ton 2e exemple tu utilises des variables déjà existantes -- et donc forcément, ma solution qui comptait sur le fait que toutes variables non encore parcourues étaient manquantes s'avère fausse.
Avec ton exemple, je ferais en fait : Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() |
Plus court que la variable tampon
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Cette solution fonctionne. Je me disais que les Pprex(i) existe puisque je les crée avant de prendre le minimum. Dans ma tête du moins
, c'est comme récupérer la valeur dans le bis(k).Je vais tenter le coup dans le contexte de mon étude et je vous redonne des nouvelles. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com