附加2个矩阵

时间:2017-10-10 21:33:01

标签: j

   ]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 │
└───┴───┴────┴─────┘

我试图多次附加这两个矩阵,但它给了我奇怪的矩阵。

有人可以帮帮我吗?谢谢

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 |
+---+---+----+-----+