J'essaie d'obtenir un codage binaire un-de-K d'un vecteur entier dans Octave. J'ai un vecteur y
, direCodage 1-of-K dans Octave
y = [1 ; 2 ; 3 ; 1 ; 3]
et je veux une matrice
Y = [1 0 0
0 1 0
0 0 1
1 0 0
0 0 1]
Je peux construire l'un de K-matrice à la main avec
Y = [];
Y = [Y y == 1];
Y = [Y y == 2];
Y = [Y y == 3];
Mais quand J'essaie de le construire avec une boucle for
,
Y = [];
for i = unique(y),
Y = [Y y == i];
endfor
quelque chose va mal:
error: mx_el_eq: nonconformant arguments (op1 is 5x1, op2 is 3x1)
Je ne comprends même pas le message d'erreur. Où est mon erreur?
J'obtiens 'erreur: « t » undefined' ... –
Merci pour la capture que. Je l'ai corrigé pour dire y au lieu de t. – Devin
Pauvre vieille Octave, nous obligeant à échanger de l'utilisation excessive de la mémoire pour la performance, en l'absence d'un jit. –