What is the shortest way to make matrix from a vector using the 1-of-K coding scheme?

1 view (last 30 days)
How to make matrix from a vector using the 1-of-K coding scheme but without a for cycle? (1,1,2,3,1,3,2) to (1,0,0; 1,0,0; 0,1,0; 0,0,1; 1,0,0; 0,0,1; 0,1,0)

Accepted Answer

Stephen23
Stephen23 on 25 May 2015
Edited: Stephen23 on 25 May 2015
This is easy using sub2ind:
>> C = [1,1,2,3,1,3,2];
>> R = 1:numel(C);
>> A = zeros(numel(C),max(C));
>> A(sub2ind(size(A),R,C)) = 1
A =
1 0 0
1 0 0
0 1 0
0 0 1
1 0 0
0 0 1
0 1 0

More Answers (0)

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!