我正在编写一个脚本,它可以创建许多图表,确定每个图表的回归拟合度,然后将所有回归系数保存到一个表中。该脚本可以执行我想要的操作,但随着需要计算的列数增加,它会突然停止运行。即使我尝试在循环中关闭它们,该脚本似乎仍会在后台保留在 For 循环中创建的图表和生成的面板(一旦将图表发送到期刊(用于 PDF 导出)并提取了回归系数,我就不需要单独的图表或表格框数据了)。
当我使用调试器单步执行脚本时,脚本运行到最后并没有显示单独的窗口,但当我停止调试器(红色方块)时,for 循环中的所有单独窗口都会被创建。脚本迭代了 600 列,在后台创建的相应数量的窗口(设置为不可见)会随着时间的推移导致 jmp 函数逐渐停止。
当使用脚本遍历数据集以执行某些分析或生成许多图表时,如何最好地关闭创建的“中间”窗口、图表等,以最大限度地减少产生的内存负担?
下面是我遍历各列的脚本的部分片段。
For( i = 7, i <=ncols, i++,
biv = dt << Bivariate(
Y(Column(colList[i]) ),
X( :Temperature ),
Fit Line( {Line Color( "Medium Dark Red" )} ), invisible);
rbiv = biv << Report;
biv << Close;
rbiv[Frame Box( 1 )] << Frame Size( 550, 400 );
rbiv << Page Break;
rbiv << Journal;
dtx= Report( biv )["Parameter Estimates"][Table Box( 1 )] << make combined data table;
// dty= Report( biv )["Lack Of Fit"][Table Box( 1 )] << make combined data table;
dtSlope << Concatenate(dtx ,"Append to first table");
// dtFit << Concatenate(dty ,dtSlope, "Append to first table");
// Close(dty, NoSave);
Close(dtx, NoSave);
);