2
我知道給定一個大小爲NxN的矩陣M
我可以使用(i.m){M
得到前m行我想知道如何從M
得到前n列。J獲得矩陣的前N列
我認爲有像
rows =: (i.m){M
給大小的矩陣mxN個同樣的方法將採取何種措施得到這個新矩陣的前n列。
編輯:
我試圖用這樣的代碼:
(i.n)"1{(i.m){M
但是它不工作,因爲它只返回n列的第一個元素M的第一排,我需要獲得n列。
我知道給定一個大小爲NxN的矩陣M
我可以使用(i.m){M
得到前m行我想知道如何從M
得到前n列。J獲得矩陣的前N列
我認爲有像
rows =: (i.m){M
給大小的矩陣mxN個同樣的方法將採取何種措施得到這個新矩陣的前n列。
編輯:
我試圖用這樣的代碼:
(i.n)"1{(i.m){M
但是它不工作,因爲它只返回n列的第一個元素M的第一排,我需要獲得n列。
你已經有了丹的幾個答案。這一個只是解釋爲什麼你可能更喜歡使用取而不是從。如果遇到你的情況,你的n大於你的M的列數,取會給你填充從會產生一個錯誤。
$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
我沒有時間一個合適的回答了,但短篇小說是*動詞秩*,在J.基礎性概念之一嘗試'(中){「1 M',或者採取不同的方法,使用* transpose *'(in){|:M'。或者,替代'{'(* from *)'使用'{.'(* take *),如'n {。「1 M'或'n {。 |:M'或'(_,n){。 M'。 –
這工作,我試圖在錯誤的地方使用排名。我已經得到了一個解決方案,請張貼你的,我會接受它的一個合適的答案 –