如何直接从内存中的数组计算中获取使用多列计算的公式的结果?使用“ Big Class.jmp”和公式数据进行计算的要求如下:
添加“ row6”列,并找到从第10行到最多6行的最小高度;
添加“ row7”列,并找到从第10行到最多7行的height列的最小值;
...
如何使用内存数组方法直接找到“ 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>
脚本编写回复:如何直接从内存中的数组计算中获得由多列计算的公式的结果?如果我正确理解,您想不使用公式就直接将row6到row9的结果获取到数组?
下面是row6的示例,该示例使用带有列表的“每行”,并且计算方式与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>
回复:如何直接从内存中的数组计算中获得由多列计算的公式的结果?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]);
);
您必须阅读《脚本指南》,以便自己开始解决这些问题。
回复:如何直接从内存中的数组计算中获得由多列计算的公式的结果?谢谢吉姆!
看来此方法不是完整的内存阵列操作。
回复:如何直接从内存中的数组计算中获得由多列计算的公式的结果?我的实际计算是:
1。 根据上述要求计算最小值。
2。 根据相同的原理计算最大值。
3。 分别输入类别6、7、8和9的最大值/最小值。
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?
谢谢!
回复:如何直接从内存中的数组计算中获取使用多列计算的公式的结果?由于我的英语阅读能力有限,所以只能使用现成的示例作为参考。
在此示例中找到答案。替换矩阵值
谢谢专家!