Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal calcolo di un array in memoria?I requisiti per il calcolo con i dati di "Big Class.jmp" e la formula sono i seguenti:
Aggiungi la colonna "riga6" e trova l'altezza minima dalla riga 10 e fino a 6 righe;
Aggiungi la colonna "riga7" e trova il valore minimo della colonna di altezza a partire dalla riga 10 e fino a 7 righe;
...
Come trovare il risultato di "row6" - "row9" direttamente utilizzando il metodo dell'array di memoria?
Grazie!
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<NEW column="">9,min(height[Index(Row()-6,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-7,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-8,Row())])));dt<<RUN formulas="">9,min(height[Index(Row()-9,Row())])));dt<<RUN formulas=""></RUN></RUN></RUN></RUN></NEW>
ScriptingRi: Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal computo di un array in memoria?Se ho capito bene, vuoi ottenere risultati da row6 a row9 direttamente su array senza usare formule?
Di seguito è riportato un esempio per la riga6 che utilizza Per ogni riga con elenco e lo stesso calcolo della Formula per la colonna riga6.
Names Default To Here(1);
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<NEW column="">9,
min(height[Index(Row()-6,Row())])
)
);
);
dt<<RUN formulas="">9,
min(:height[Index(Row()-6,Row())])
)
)
);
show(row6_list);
dt << new column("row6_l", << set values(row6_list));</RUN></NEW>
Ri: Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal computo di un array in memoria?Names Default To Here( 1 );
dt = current data table();
theHeight = dt:height << get values;
row6=shape([.],40);
row7=shape([.],40);
row8=shape([.],40);
row9=shape([.],40);
row10=shape([.],40);
For(i=11,i<=N Rows(theHeight),i++,
row6[i]=Min(theHeight[i-6::i]);
row7[i]=Min(theHeight[i-7::i]);
row8[i]=Min(theHeight[i-8::i]);
row9[i]=Min(theHeight[i-9::i]);
row10[i]=Min(theHeight[i-10::i]);
);
Devi leggere la Guida allo scripting in modo da poter iniziare a risolvere questi problemi da solo.
Ri: Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal computo di un array in memoria?Grazie Jim!
Sembra che questo metodo non sia l'operazione di matrice di memoria completa.
Ri: Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal computo di un array in memoria?Il mio calcolo effettivo è:
1. Calcolare il valore minimo in base ai requisiti di cui sopra.
2. Calcola il valore massimo secondo lo stesso principio.
3. Inserisci il valore massimo / minimo delle categorie 6, 7, 8 e 9 rispettivamente.
4. Seleziona il valore minimo dei quattro rapporti
Questo restituisce il rapporto minimo di ogni riga rispetto alla tabella. Altri dati intermedi non vengono emessi.

Ho scritto il codice in VBA di Excel.
Sub vba()
ar = Range("d2:d" & Cells(Rows.Count, "d").End(3).Row)
ReDim br(1 To UBound(ar), 1 To 8): ReDim cr(1 To UBound(ar), 1 To 1)
For r = 10 To UBound(ar)
n = 99: m = 0
For c = 0 To 8
If ar(r - c, 1) < n Then n = ar(r - c, 1)
If ar(r - c, 1) > m Then m = ar(r - c, 1)
If c > 4 Then br(r, c - 4) = n: br(r, c) = m
Next
Next
Cells(2, "G").Resize(UBound(br), UBound(br, 2)) = br
For r = 10 To UBound(ar)
For c = 1 To 4
If c = 1 Then
cr(r, 1) = br(r, c + 4) / br(r, c)
Else
If br(r, c + 4) / br(r, c) < cr(r, 1) Then cr(r, 1) = br(r, c + 4) / br(r, c)
End If
Next
Next
Cells(2, "f").Resize(UBound(br), 1) = cr
End Sub
Come cambio questo VBA in JSL?
Grazie!
Ri: Come si può ottenere il risultato della formula calcolato con più colonne direttamente dal calcolo di un array in memoria?Poiché la mia capacità di lettura in inglese è limitata, posso utilizzare solo esempi già pronti come riferimento.
La risposta si trova in questo esempio.Sostituzione dei valori della matrice
Grazie Esperti!