Как получить массив ненулевых местоположений (индексов) и значений разреженной матрицы в Armadillo C++?Возвращаемые местоположения и значения разреженной матрицы в armadillo C++
До сих пор, я могу легко построить разреженную матрицу с множеством мест (в качестве объекта UMAT) и значения (как VEC объекта):
// batch insertion of two values at (5, 6) and (9, 9)
umat locations;
locations << 5 << 9 << endr
<< 6 << 9 << endr;
vec values;
values << 1.5 << 3.2 << endr;
sp_mat X(locations, values, 9, 9);
Как я могу получить обратно места? Например, я хочу, чтобы иметь возможность сделать что-то вроде этого:
umat nonzero_index = X.locations()
Любые идеи?
Ваш код имеет ошибку: вместо 'X (места, значения, 9, 9)', он должен быть 'X (места , значения, 10, 10). Поскольку C++ начинает отсчет с 0, местоположение (9,9) относится к 10-й строке и 10-му столбцу. – mtall
О, хорошо поймать. Благодаря! – kchow462