2017-01-23 6 views
2

Предположим, у меня небольшая матрица. У меня он определен в следующем формате CSV:Armadillo - как создать матрицу из разреженного формата?

row,column,value 1,1,5 1,2,10

В этом случае точка (1,1) равно 5 и точки (1,2) равно 10.

Что такое эффективный способ создания матрицы из этого формата (предполагая тысячи или сотни тысяч строк)?

Другими словами, я хочу, чтобы эквивалент полного выполнения (spconvert (m)) в Matlab, где m - указанная выше матрица.

ответ

2

Необходимо использовать один из конструкторов пакетной вставки из разреженного матричного класса sp_mat. Существует пример того, как это сделать в documentation:

// 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);