2017-10-24 14 views
1
v=: ((1 2);(3 4);(0 5);(2 1)) 
diff=: ([{]) ,. ] 
direction_vector=: <"1 @: (-"0 @:(-/"2 @: (>"0 @: (diff)))) 
distance=: +/"1 @: *: @: (>"2 @:(direction_vector)) 

は、私が試した 非類似度マトリックスは

(0 distance v),. (1 distance v),. (2 distance v) ,. (3 distance v) 

のように見える非類似度行列を取得したい私にインデックスエラーを与えた

i.4 distance v 

誰もがこれに私を助けることができますか?

ありがとうございました!

答えて

3

あなたは近くですが、対処すべき2つの問題があります。 1つは距離を適用する前にi. 4の計算を完了したいということです(これが原因でインデックスエラーが発生します)。計算の順序を変更するためのかっこがこれに対する解決策です。

i. 4 distance v 
|index error: diff 
| i.4  distance v 
    (i. 4) distance v 
0 0 0 0 

第二の問題は、あなたがvの全体にi.4の各原子を適用することで、あなたは左引数と_(無限大)のための0(原子)を指定する"(ランク)を使用して、これを行います正しい議論の全体について

(i. 4) distance"0 _ v 
0 8 10 2 
8 0 10 10 
10 10 0 20 
2 10 20 0 
関連する問題