在 Q 中向矩阵添加一行?

Adding a row to a matrix in Q?

我目前有一个 3 x 3 矩阵 "m":

1 2 3
4 5 6
7 8 9

我想在矩阵 'm' 中添加一行以获得矩阵的结果:

1 2 3
4 5 6
7 8 9
10 11 12

q 中的矩阵只是列表的列表,其中内部列表表示行。

m: ((1 2 3);(4 5 6);(7 8 9))

要再添加一行,您只需再添加一个内部列表即可:

m: m,enlist 10 11 12

enlist 在这里很重要,没有它你会得到这样的结果:

q)((1 2 3);(4 5 6);(7 8 9)),10 11 12
1 2 3
4 5 6
7 8 9
10
11
12

我同意;使用0N!x查看结构很有用

要达到你想要的,那么你可以简单地做;

q)show m:3 cut 1+til 9 /create matrix
1 2 3
4 5 6
7 8 9
q)show m,:10 11 12 /join new 'row'
1  2  3 
4  5  6 
7  8  9 
10 11 12
q)