utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoHo tre liste di numeri:
un= {2,3,4,5,6}
e = {4,5,7,2,1}
c= {9,6,4,6,2}
Vorrei prendere il minimo di ciascun indice dalle 3 liste e trasformarlo in una lista, diciamo d. quindi d = {2,3,4,2,1}.
il ciclo che ho iniziato è:
minl = {};
per(i = 1, i = 6, i++,
minuti = {a[i], b[i], c[i]};
minval = minimo(minuti);
minsl=inserisci in(minsl,minval,i);
If(n items(minsl)==5, break()); // questa riga è stata aggiunta per interrompere il ciclo perché si blocca
);
l'output è minsl = {1,1,1,1,1} ovvero si blocca memorizzando solo l'ultima voce nell'elenco (e continua per sempre senza la riga di interruzione), quando dovrebbe essere {2,3,4,2,1}
Avete suggerimenti su come risolvere il problema? Grazie!!
Automazione e scriptingRe: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoNon ci avevo pensato, buona idea, grazie!
Re: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoGrazie!!:)
Re: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoPuoi anche usare matrici + V Min() per questo (ricordati di commentare il codice per renderlo più facile da capire se necessario)
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: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoIl tuo ciclo For() di
For( i = 1, i = 5, i++,
deve essere
For( i = 1, i <= 5, i++,
Quindi sembra che funzioni come vuoi
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: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoa = {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);
minslovvero quanto sopra funziona, ma vorrei ottenere un ciclo funzionante per quando ho liste di lunghezze molto più lunghe
Re: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencograzie! questo non sembra preservare l'ordine però. In sostanza, devo estrarre il valore minimo dal primo indice delle 3 liste e poi memorizzarlo in una lista (preservando l'ordine)
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());
);se esegui il codice sopra ignorando il ciclo effettivo e fai i=1, quindi esegui solo l'interno del ciclo e quindi inserisci i=2 ed esegui l'interno del ciclo funziona (vedrai minsl = {2,3}) ma per qualche motivo il ciclo non cicla correttamente e si interrompe
Re: utilizzo del ciclo for per trovare i valori minimi e salvataggio dei risultati in un elencoEcco come affronterei la questione
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;
Inoltre, si prega di utilizzare il icona in cima alla finestra di Anteprima quando si inserisce il codice script. Consente al lettore di leggere più facilmente il codice.