utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeJ'ai trois listes de nombres :
a= {2,3,4,5,6}
b = {4,5,7,2,1}
c= {9,6,4,6,2}
Je voudrais prendre le minimum de chaque index des 3 listes et le transformer en une liste, disons d. donc d = {2,3,4,2,1}.
la boucle que j'ai commencée est :
minute = {} ;
pour(i = 1, i = 6, i++,
minutes = {a[i], b[i], c[i]};
minval = minimum(minutes);
minsl=insérer dans(minsl,minval,i);
Si(n items(minsl)==5, break()); // cette ligne a été ajoutée pour arrêter la boucle car elle reste bloquée
);
la sortie est minsl = {1,1,1,1,1} c'est-à-dire qu'elle se bloque en stockant uniquement la dernière entrée de la liste (et continue indéfiniment sans la ligne de rupture), alors qu'elle devrait être {2,3,4,2,1}
Des suggestions pour résoudre le problème ? Merci !!
Automatisation et scriptsRe: utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeJe n'avais pas pensé à ça, bonne idée, merci !
Re: utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listemerci!!:)
Re : utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeVous pouvez également utiliser des matrices + V Min() pour cela (pensez à commenter le code pour le rendre plus facile à comprendre si nécessaire)
Names Default To Here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
m = Matrix(a)` |/ Matrix(b)` |/ Matrix(c)`;
d = As List(V Min(m)`); // {2, 3, 4, 2, 1}
Re : utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeVotre boucle For() de
For( i = 1, i = 5, i++,
doit être
For( i = 1, i <= 5, i++,
Alors cela semble fonctionner comme vous le souhaitez
names default to here( 1 );
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
For( i = 1, i <= 5, i++,
mins = a[i] || b[i] || c[i];
minval = Minimum( mins );
Insert Into( minsl, minval );
);Re: utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listea = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
i = 1;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i=2;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 3;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 4;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
minslc'est-à-dire que ce qui précède fonctionne, mais j'aimerais obtenir une boucle qui fonctionne lorsque j'ai des listes de longueurs beaucoup plus longues
Re: utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeMerci ! Cela ne semble cependant pas préserver l'ordre. Essentiellement, je dois extraire la valeur minimale du premier index des 3 listes, puis la stocker dans une liste (en préservant l'ordre)
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
for(i = 1, i = 5, i++,
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
If(n items(minsl)==5, break());
);si vous exécutez le code ci-dessus en ignorant la boucle réelle et faites i = 1, puis exécutez simplement l'intérieur de la boucle, puis mettez i = 2 et exécutez l'intérieur de la boucle, cela fonctionne (vous verrez minsl = {2,3}) mais pour une raison quelconque, la boucle ne se déroule pas correctement et se brise
Re : utiliser la boucle for pour trouver les valeurs minimales et enregistrer les résultats dans une listeVoici comment j'aborderais le problème
names default to here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
a1= sortlist(a);
remove from(a1,3,n=length(a)-2);
b1= sortlist(b);
remove from(b1,3,n=length(b)-2);
c1= sortlist(c);
remove from(c1,3,n=length(c)-2);
d=a1||b1||c1;
Veuillez également utiliser le icône en haut de la fenêtre d'aperçu lors de la saisie du code du script. Elle permet au lecteur de lire plus facilement le code.