获取矩阵的一列并使其成为 kdb 中的一行
Take a column of a matrix and make it a row in kdb
考虑矩阵:
1 2 3
4 5 6
7 8 9
我想取中间的列,将它赋给一个变量,然后用它替换中间的行,给我
1 2 3
2 5 8
7 8 9
我正在使用
提取中间列
a:m[;enlist1]
哪个returns
2
5
8
如何用 a 替换中间行?是否需要翻转?
谢谢。
可以用点号修改-
q)show m:(3;3)#1+til 10
1 2 3
4 5 6
7 8 9
q)show a:m[;1]
2 5 8
q).[m;(1;::);:;a]
1 2 3
2 5 8
7 8 9
可以在此处查看文档:
如果你想就地更新矩阵,你可以使用
q)show m:(3;3)#1+til 10
1 2 3
4 5 6
7 8 9
q)a:m[;1]
q)m[1]:a
q)show m
1 2 3
2 5 8
7 8 9
q)
剪掉"a"你只需要:
m[1]:m[;1]
使其更通用一些,您可以在其中定义操作、行和列
q)m:3 cut 1+til 9
1 2 3
4 5 6
7 8 9
正在将中间列分配给中间行:
q){[ m;o;i1;i2] .[m;enlist i1;o; flip[m] i2 ] }[m;:;1;1]
1 2 3
2 5 8
7 8 9
通过将 o
作为 +
传递,将中间列添加到中间行
q){[ m;o;i1;i2] .[m;enlist i1;o; flip[m] i2 ] }[m;+;1;1]
1 2 3
6 10 14
7 8 9
考虑矩阵:
1 2 3
4 5 6
7 8 9
我想取中间的列,将它赋给一个变量,然后用它替换中间的行,给我
1 2 3
2 5 8
7 8 9
我正在使用
提取中间列a:m[;enlist1]
哪个returns
2
5
8
如何用 a 替换中间行?是否需要翻转?
谢谢。
可以用点号修改-
q)show m:(3;3)#1+til 10
1 2 3
4 5 6
7 8 9
q)show a:m[;1]
2 5 8
q).[m;(1;::);:;a]
1 2 3
2 5 8
7 8 9
可以在此处查看文档:
如果你想就地更新矩阵,你可以使用
q)show m:(3;3)#1+til 10
1 2 3
4 5 6
7 8 9
q)a:m[;1]
q)m[1]:a
q)show m
1 2 3
2 5 8
7 8 9
q)
剪掉"a"你只需要:
m[1]:m[;1]
使其更通用一些,您可以在其中定义操作、行和列
q)m:3 cut 1+til 9
1 2 3
4 5 6
7 8 9
正在将中间列分配给中间行:
q){[ m;o;i1;i2] .[m;enlist i1;o; flip[m] i2 ] }[m;:;1;1]
1 2 3
2 5 8
7 8 9
通过将 o
作为 +
q){[ m;o;i1;i2] .[m;enlist i1;o; flip[m] i2 ] }[m;+;1;1]
1 2 3
6 10 14
7 8 9