Преобразуйте индексы в векторы
ind2vec(ind)
ind2vec(ind,N)
ind2vec
и vec2ind
разрешить представление индексов либо самостоятельно, либо в виде векторов, содержащих 1 в строке индекса, который они представляют.
ind2vec(ind)
принимает один аргумент,
ind | Вектор-строка индексов |
и возвращает разреженную матрицу векторов с одним 1 в каждом столбце, как обозначено ind
.
ind2vec(ind,N)
возвращает N
-by- 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