Преобразуйте индексы в векторы
ind2vec(ind)
ind2vec(ind,N)
ind2vec
и vec2ind
позвольте индексам быть представленными или собой, или как векторы, содержащие 1 в строке индекса, который они представляют.
ind2vec(ind)
берет один аргумент,
ind | Вектор-строка из индексов |
и возвращает разреженную матрицу векторов, с одним 1 в каждом столбце, как обозначено ind
.
ind2vec(ind,N)
возвращает N
- M
матрица, где N
может быть равным или больше, чем максимальный индекс.
Здесь четыре индекса заданы и преобразованы в векторное представление.
ind = [1 3 2 3]; vec = ind2vec(ind)
vec = (1,1) 1 (3,2) 1 (2,3) 1 (3,4) 1
Здесь вектор со всеми нулями в последней строке преобразован в индексы и назад при сохранении количества строк.
vec = [0 0 1 0; 1 0 0 0; 0 1 0 0]'
vec = 0 1 0 0 0 1 1 0 0 0 0 0
[ind,n] = vec2ind(vec)
ind = 3 1 2 n = 4
vec2 = full(ind2vec(ind,n))
vec2 = 0 1 0 0 0 1 1 0 0 0 0 0