2017-01-28 4 views
0
y = 3 
    6 
    2 
    7 

及びIは、Yの各行は、ワンホットベクターなるマトリックス中にそれを変換したい:私はループを使用したくない1〜9の整数のベクトルをOctaveの「1つのホットベクトル」に変換しますか?

y = 0 0 1 0 0 0 0 0 0 
    0 0 0 0 0 1 0 0 0 
    0 1 0 0 0 0 0 0 0 
    0 0 0 0 0 0 1 0 0 

。明らかにベクトル化されたものは、要素的に何かをする必要があるよりも優れています。しかしこれまでのところ、私はちょうど持っています:

y./[1 2 3 4 5 6 7 8 9] 
ans = 
3.00000 1.50000 1.00000 0.75000 0.60000 0.50000 0.42857 0.37500 0.33333 
6.00000 3.00000 2.00000 1.50000 1.20000 1.00000 0.85714 0.75000 0.66667 
2.00000 1.00000 0.66667 0.50000 0.40000 0.33333 0.28571 0.25000 0.22222 
7.00000 3.50000 2.33333 1.75000 1.40000 1.16667 1.00000 0.87500 0.77778 

これは私にすべてのものを与えますが、ゼロを与えません。

答えて

0

あなたはすべてのものを除外することができます。

y = [3; 6; 2; 7]; 
(y./[1 2 3 4 5 6 7 8 9]) == 1 

ans = 

    0 0 1 0 0 0 0 0 0 
    0 0 0 0 0 1 0 0 0 
    0 1 0 0 0 0 0 0 0 
    0 0 0 0 0 0 1 0 0 
+1

男を与える!!!!!!!!!!! –

+0

@dolphonebubleine何か問題がありますか?正直言って、あなたが何を言いたいのかは分かりません。 –

+0

いいえ、それは素晴らしいです。私は本当にどれくらい簡単なのか分かりました。 –

関連する問題