Verwenden einer for-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer ListeIch habe drei Zahlenlisten:
ein = {2,3,4,5,6}
b = {4,5,7,2,1}
c= {9,6,4,6,2}
Ich möchte das Minimum jedes Indexes aus den 3 Listen nehmen und das in eine Liste umwandeln, sagen wir d. also d = {2,3,4,2,1}.
die Schleife, die ich gestartet habe, ist:
minsl = {};
für(i = 1, i = 6, i++,
Minuten = {a[i], b[i], c[i]};
minval = Minimum(Min.);
minsl=einfügen in(minsl,minval,i);
If(n items(minsl)==5, break()); // diese Zeile wurde hinzugefügt, um die Schleife zu stoppen, da sie hängen bleibt
);
die Ausgabe ist minsl = {1,1,1,1,1}, d. h. es bleibt beim Speichern nur des letzten Eintrags in der Liste hängen (und macht ohne die Unterbrechungszeile ewig weiter), obwohl es {2,3,4,2,1} sein sollte
Irgendwelche Vorschläge, wie man das beheben kann?? Danke!!
Automatisierung und SkriptingBetreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer Listedaran habe ich nicht gedacht, gute Idee – danke!
Betreff: Verwenden einer for-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer ListeDanke!!:)
Betreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer ListeSie können hierfür auch Matrizen + V Min() verwenden (denken Sie daran, den Code zu kommentieren, um ihn bei Bedarf leichter verständlich zu machen).
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}
Betreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer ListeIhre For()-Schleife von
For( i = 1, i = 5, i++,
muss sein
For( i = 1, i <= 5, i++,
Dann scheint es so zu funktionieren, wie Du es möchtest
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 );
);Betreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer 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);
minslDas obige funktioniert, aber ich möchte eine Schleife zum Laufen bringen, wenn ich Listen mit viel längeren Längen habe
Betreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer Listedanke! dies scheint jedoch die Reihenfolge nicht beizubehalten. Im Wesentlichen muss ich den Mindestwert aus dem ersten Index der 3 Listen ziehen und diesen dann in einer Liste speichern (Reihenfolge beibehalten).
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());
);Wenn Sie den obigen Code ausführen und dabei die eigentliche Schleife ignorieren und i=1 setzen, und dann nur das Innere der Schleife ausführen und dann i=2 setzen und das Innere der Schleife ausführen, funktioniert es (Sie werden minsl = {2,3} sehen), aber aus irgendeinem Grund wird die Schleife nicht richtig durchlaufen und bricht ab
Betreff: Verwenden einer For-Schleife zum Suchen von Minimalwerten und Speichern der Ergebnisse in einer ListeSo würde ich das Problem angehen:
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;
Bitte verwenden Sie außerdem die Symbol oben im Vorschaufenster, wenn Sie Skriptcode eingeben. Dadurch kann der Leser den Code leichter lesen.