Скачать матрицу в так называемом формате "матричный рынок": https://sparse.tamu.edu/MM/Rothberg/cfd1.tar.gz
Извлеките матрицу из архива .tar.gz, получив cfd1/cfd1.mtx
. Файл имеет заголовок, который должен быть удален перед загрузкой файла. Используя текстовый редактор, удалите первые 14 строк в файле MTX. Первая строка должна иметь 1 1 1
. Сохраните отредактированный файл под тем же именем.
Загрузить отредактированный матричный файл в Armadillo, используя опцию coord_ascii
. Вам понадобится последняя версия Armadillo, которая поддерживает coord_ascii
(версия 9.400, кажется, работает).
sp_mat X;
X.load("cfd1/cfd1.mtx", coord_ascii);
В матрице Armadillo индексы начинаются с 0 (из-за соглашений C ++), в то время как в файле рынка матрицы они начинаются с 1. Поэтому вам нужно удалить первую строку и столбец из X
, чтобы учесть это. Это можно сделать через подматрицы :
X = X.tail_rows(X.n_rows-1);
X = X.tail_cols(X.n_cols-1);