J 获取矩阵的前 N 列
J Get first N columns of a Matrix
我知道给定一个大小为 NxN 的矩阵 M
我可以使用 (i.m){M
获取前 m 行 我想知道如何从 M
获取前 n 列.
我假设
rows =: (i.m){M
给出一个大小为 mxN 的矩阵,将采用相同的方法来获取这个新矩阵的前 n 列。
编辑:
我正在尝试使用这样的代码:
(i.n)"1{(i.m){M
但是它不起作用,因为它只是 returns M 第一行中 n 列的第一个元素,我需要获取 n 列。
你已经从 Dan 那里得到了几个答案。这只是为了解释为什么您可能更喜欢使用 take 而不是 from。如果你 运行 遇到 n 大于 M 中列数的情况,take 会给你 fill where from 会产生错误。
$M
10 10
(i. 3){"1 M
0 1 2
10 11 12
20 21 22
30 31 32
40 41 42
50 51 52
60 61 62
70 71 72
80 81 82
90 91 92
3{."1 M
0 1 2
10 11 12
20 21 22
30 31 32
40 41 42
50 51 52
60 61 62
70 71 72
80 81 82
90 91 92
(i. 12){"1 M
|index error
| (i.12) {"1 M
12{."1 M
0 1 2 3 4 5 6 7 8 9 0 0
10 11 12 13 14 15 16 17 18 19 0 0
20 21 22 23 24 25 26 27 28 29 0 0
30 31 32 33 34 35 36 37 38 39 0 0
40 41 42 43 44 45 46 47 48 49 0 0
50 51 52 53 54 55 56 57 58 59 0 0
60 61 62 63 64 65 66 67 68 69 0 0
70 71 72 73 74 75 76 77 78 79 0 0
80 81 82 83 84 85 86 87 88 89 0 0
90 91 92 93 94 95 96 97 98 99 0 0
我知道给定一个大小为 NxN 的矩阵 M
我可以使用 (i.m){M
获取前 m 行 我想知道如何从 M
获取前 n 列.
我假设
rows =: (i.m){M
给出一个大小为 mxN 的矩阵,将采用相同的方法来获取这个新矩阵的前 n 列。
编辑:
我正在尝试使用这样的代码:
(i.n)"1{(i.m){M
但是它不起作用,因为它只是 returns M 第一行中 n 列的第一个元素,我需要获取 n 列。
你已经从 Dan 那里得到了几个答案。这只是为了解释为什么您可能更喜欢使用 take 而不是 from。如果你 运行 遇到 n 大于 M 中列数的情况,take 会给你 fill where from 会产生错误。
$M
10 10
(i. 3){"1 M
0 1 2
10 11 12
20 21 22
30 31 32
40 41 42
50 51 52
60 61 62
70 71 72
80 81 82
90 91 92
3{."1 M
0 1 2
10 11 12
20 21 22
30 31 32
40 41 42
50 51 52
60 61 62
70 71 72
80 81 82
90 91 92
(i. 12){"1 M
|index error
| (i.12) {"1 M
12{."1 M
0 1 2 3 4 5 6 7 8 9 0 0
10 11 12 13 14 15 16 17 18 19 0 0
20 21 22 23 24 25 26 27 28 29 0 0
30 31 32 33 34 35 36 37 38 39 0 0
40 41 42 43 44 45 46 47 48 49 0 0
50 51 52 53 54 55 56 57 58 59 0 0
60 61 62 63 64 65 66 67 68 69 0 0
70 71 72 73 74 75 76 77 78 79 0 0
80 81 82 83 84 85 86 87 88 89 0 0
90 91 92 93 94 95 96 97 98 99 0 0