Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?Die Anforderungen für die Berechnung mit den Daten von "Big Class.jmp" und der Formel lauten wie folgt:
Fügen Sie die Spalte "row6" hinzu und ermitteln Sie die Mindesthöhe von Zeile 10 bis zu 6 Zeilen.
Fügen Sie die Spalte "row7" hinzu und ermitteln Sie den Mindestwert der Höhenspalte ab Zeile 10 und bis zu 7 Zeilen.
...
Wie finde ich das Ergebnis von "row6" - "row9" direkt mithilfe der Speicherarray-Methode?
Vielen Dank!
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>
SkriptingBetreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?Wenn ich das richtig verstehe, möchten Sie Ergebnisse für Zeile 6 bis Zeile 9 direkt in Arrays ohne Verwendung von Formeln erhalten?
Unten finden Sie ein Beispiel für Zeile 6 unter Verwendung von Für jede Zeile mit Liste und derselben Berechnung wie Formel für Spalte Zeile 6.
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>
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?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]);
);
Sie müssen den Scripting Guide lesen, damit Sie diese Probleme selbst lösen können.
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?Danke Jim!
Es scheint, dass diese Methode nicht die Operation mit vollem Speicherarray ist.
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?Meine tatsächliche Berechnung ist:
1. Berechnen Sie den Mindestwert gemäß den oben genannten Anforderungen.
2. Berechnen Sie den Maximalwert nach dem gleichen Prinzip.
3. Geben Sie den Maximal- / Minimalwert der Kategorien 6, 7, 8 und 9 an.
4. Wählen Sie den Mindestwert der vier Verhältnisse
Dies gibt das Mindestverhältnis jeder Zeile zur Tabelle aus. Andere Zwischendaten werden nicht ausgegeben.

Ich habe den Code in Excel's VBA geschrieben.
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
Wie ändere ich diese VBA in JSL?
Vielen Dank!
Betreff: Wie kann das Ergebnis der mit mehreren Spalten berechneten Formel direkt aus der Berechnung eines Arrays im Speicher ermittelt werden?Da meine Englischkenntnisse begrenzt sind, kann ich nur vorgefertigte Beispiele als Referenz verwenden.
Die Antwort finden Sie in diesem Beispiel.Matrixwerte ersetzen
Vielen Dank Experten!