]v=: 1 2;3 4;0 5;2 1
┌───┬───┬───┬───┐
│1 2│3 4│0 5│2 1│
└───┴───┴───┴───┘
]d=: 1 0.5 1 0.25;0.5 1 0.75 0.25;1 0.75 1 0;0.75 0.25 0 1
┌────────────┬───────────────┬──────────┬─────────────┐
│1 0.5 1 0.25│0.5 1 0.75 0.25│1 0.75 1 0│0.75 0.25 0 1│
└────────────┴───────────────┴──────────┴─────────────┘
force_constant=: monad def '(v ((y{>"0 v);])@{~ ] i.4) ,"1 0 <"0>(y{d)'
force_constant 0
┌───┬───┬────┐
│1 2│1 2│1 │
├───┼───┼────┤
│1 2│3 4│0.5 │
├───┼───┼────┤
│1 2│0 5│1 │
├───┼───┼────┤
│1 2│2 1│0.25│
└───┴───┴────┘
diff=: monad def '(v ((y{>"0 v);])@{~ ] i.4)'
direction_vector=: monad def '<"1(-/"2(>diff y))'
direction_vector 0
┌───┬─────┬────┬────┐
│0 0│_2 _2│1 _3│_1 1│
└───┴─────┴────┴────┘
然后,我想将direction_vector 0
追加到force_constant 0
,这应该是这样的:
┌───┬───┬────┐─────┐
│1 2│1 2│1 │0 0 │
├───┼───┼────┼─────┤
│1 2│3 4│0.5 │_2 _2│
├───┼───┼────┼─────┤
│1 2│0 5│1 │1 _3 │
├───┼───┼────┼─────┤
│1 2│2 1│0.25│_1 1 │
└───┴───┴────┴─────┘
我试图多次附加这两个矩阵,但它给了我奇怪的矩阵。
有人可以帮帮我吗?谢谢
答案 0 :(得分:3)
使用二元动词Stitch .,
将force_constant的项目与direction_vector项目放在一起。来自J字典http://www.jsoftware.com/help/dictionary/d321.htm
(force_constant ,. direction_vector) 0 NB. fork
+---+---+----+-----+
|1 2|1 2|1 |0 0 |
+---+---+----+-----+
|1 2|3 4|0.5 |_2 _2|
+---+---+----+-----+
|1 2|0 5|1 |1 _3 |
+---+---+----+-----+
|1 2|2 1|0.25|_1 1 |
+---+---+----+-----+