メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?「Big Class.jmp」のデータと計算式による計算条件は以下の通りです。
列「row6」を追加し、行 10 から最大 6 行までの最小の高さを見つけます。
列「row7」を追加し、10 行目から 7 行までの高さ列の最小値を見つけます。
...
メモリ配列メソッドを使用して、「row6」-「row9」の結果を直接見つける方法は?
ありがとう!
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>
スクリプティングRe: メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?私の英語の読解力には限界があるので、既成の例を参考にするしかありません。
答えはこの例にあります。行列値の置換
ありがとう専門家!
Re: メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?私の実際の計算は次のとおりです。
1. 上記の要件に従って最小値を計算します。
2. 同じ原則に従って最大値を計算します。
3. それぞれカテゴリ 6、7、8、9 の最大値/最小値を入れてください。
4. 4 つの比率の最小値を選択します
これにより、各行の最小比率がテーブルに出力されます。その他の中間データは出力されません。

コードはExcelのVBAで書きました。
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
この VBA を JSL に変更するにはどうすればよいですか?
ありがとう!
Re: メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?ありがとうジム!
この方法は完全なメモリ配列操作ではないようです。
Re: メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?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]);
);
これらの問題を自分で解決できるように、スクリプト ガイドを読む必要があります。
Re: メモリ内の配列の計算から、複数の列で計算された式の結果を直接取得するにはどうすればよいですか?私が正しく理解していれば、数式を使用せずに行6から行9の結果を直接配列に取得したいですか?
以下は、For Each Row をリストで使用し、列 row6 の Formula と同じ計算を使用する row6 の例です。
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>