帶有列錶框的嵌套循環我正在嘗試建立一個帶有 2 個嵌套 FOR 循環的 2D 矩陣,用於滑鼠懸停標籤上(圖形生成器 -> 懸停標籤編輯器 -> Graphlet)。
我在這裡提供了 2*2 矩陣的簡化範例。
hlb = H List Box();
vlb = V List Box();
For (row=1, row<=2, row++,
For (col=1, col<=2, col++,
hlb << append(Text Box("Row: "|| char(row) ||", Col: "|| char(col) ))
);
vlb << append(hlb);
);
vlb << get picture;將以上結果編寫為錯誤輸出的腳本:

為了獲得正確的結果,我需要以某種方式重置 H 列錶框。但是,如果我加 hlb << Set Items({});如下所示,結果與上面非常相同(即不正確)。
hlb = H List Box();
vlb = V List Box();
For (row=1, row<=2, row++,
For (col=1, col<=2, col++,
hlb << append(Text Box("Row: "|| char(row) ||", Col: "|| char(col) ))
);
vlb << append(hlb);
<FONT color="#FF0000">hlb << Set Items({});</FONT>
);
vlb << get picture;我還嘗試刪除並重新建立 H 列錶框,如下所示。這也不起作用,因為它刪除了已經輸入到 V 列錶框的 H 列錶框對象
hlb = H List Box();
vlb = V List Box();
For (row=1, row<=2, row++,
For (col=1, col<=2, col++,
hlb << append(Text Box("Row: "|| char(row) ||", Col: "|| char(col) ))
);
vlb << append(hlb);
<FONT color="#FF0000"> hlb << Delete;
hlb = H List Box();</FONT>
);
vlb << get picture;還有進一步的建議嗎?我的 JMP 版本是 16.2
謝謝;
肌腱
大規模客製化回复:帶有列錶框的嵌套循環我想知道排隊框是否會是更好的方法?
回复:帶有列錶框的嵌套循環你好,
吉姆:感謝您的解決方案。 它運作良好。 我現在明白為什麼我的試驗沒有成功。
Jarmo:感謝您對使用替代解決方案的建議錶盒或陣容盒;很有教育意義。
珍妮
回复:帶有列錶框的嵌套循環您還可以使用帶有 N Col 的 Table Box 或 Lineup Box:
Names Default To Here(1);
vlb = V List Box();
For(row = 1, row <= 2, row++,
hlb = H List Box();
For(col = 1, col <= 2, col++,
hlb << append(Text Box("Row: " || Char(row) || ", Col: " || Char(col) || " || "))
);
vlb << append(hlb);
);
lb = Lineup Box(N Col(2));
cols = 2;
rows = 2;
For(i = 1, i <= cols * rows, i++,
row = Ceiling(i / 2);
col = !Modulo(i, 2) + 1; //just some calculation which works in this case
Show(col);
lb << append(Text Box("Row: " || Char(row) || ", Col: " || Char(col) || " || "));
);
//one option
tb = Table Box("",
String Col Box("row1", {"Row: 1", "Row: 2"}),
String Col Box("col1", {"Col: 1", "Col: 1"}),
String Col Box("row1", {"Row: 1", "Row: 2"}),
String Col Box("col1", {"Col: 2", "Col: 2"}),
);
New Window("",
Lineup Box(N Col(1),
Text Box("V List Box"),
vlb,
Text Box("Lineup"),
lb,
Text Box("Table Box"),
tb
)
);
回复:帶有列錶框的嵌套循環我相信這就是你想要的

vlb = V List Box();
For( row = 1, row <= 2, row++,
hlb = H List Box();
For( col = 1, col <= 2, col++,
hlb << append( Text Box( "Row: " || Char( row ) || ", Col: " || Char( col ) ) )
);
vlb << append( hlb );
);
New Window( "show", vlb << get picture );