y
- вектор-столбец с целыми значениями обозначают номер метки (например, между 1-3). Теперь мне нужно создать матрицу с таким же числом строк y
. Каждая строка i
теперь представляет собой вектор с элементом y(i)
, который должен быть 1
, а остальные - 0
.Создайте матрицу с единицами в определенных столбцах
Пример:
y = [3, 2, 2]';
x = [0,0,1;
0,1,0;
0,1,0];
Есть ли эффективный способ, чтобы закончить эту работу. Я знаю, что цикл будет делать:
x = zeros(size(y, 1), 3)
for i = 1:size(y, 1)
x(i, y(i)) = 1
end
Вот точная копия: http://stackoverflow.com/questions/23078287/create-a-zeros-filled-2d-array-with-ones-at-positions-indexed-by-a-vector – Divakar
@ Divakar Ничего себе еще не видел этого дурака. Мне нравится «редкое» решение. Очень умно. – Suever
Да, как оказалось, у нас была целая цепочка для этой конкретной проблемы. Если я правильно помню, этот разреженный был наиболее эффективным. – Divakar