Tôi có một y có kích thước 5000,1 (ma trận), có chứa số nguyên từ 1 đến 10. Tôi muốn mở rộng các chỉ mục đó thành véc tơ 1-of-10. I.e., y chứa 1,2,3 ... và tôi muốn nó "mở rộng" thành:Matlab/Octave đại diện 1-of-K
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
Cách tốt nhất để làm điều đó là gì?
tôi đã cố gắng:
Y = zeros(5000,10); Y(y) = 1;
nhưng nó đã không làm việc.
Nó hoạt động cho vectơ mặc dù:
nếu y = [2 5 7]
, và Y = zeros(1,10)
, sau đó Y(y) = [0 1 0 0 1 0 1 0 0 0]
.
thể trùng lặp của [Tạo Chỉ Matrix] (http://stackoverflow.com/questions/6150174/creating-indicator-matrix) – Amro