Я новичок в использовании armadillo и не могу получить следующее, несмотря на попытки/поиск совсем немного.armadillo C++: инициализация матрицы из массива
Есть два огромных (динамических) массива (не векторы), которые мне нужны для выполнения корреляции. Я решил использовать армадильо для этого. Я понимаю, как инициализировать arma :: mat, используя векторы, но могу ли я использовать массивы для этого? Я не понимаю, как я не вижу упоминания в documentation. Я стараюсь избегать использования векторов по причинам внутреннего дизайна. Я попытался вручную инициализировать каждый элемент, используя массивы образцов (как тупую, но отправную точку). Что-то вроде следующего кода не будет работать.
using namespace std;
using namespace arma;
mat A(SIZE, 1), B(SIZE, 1);
for(int i = 0; i < SIZE; i++)
{
A << v[i] << endr;
B << c[i] << endr;
}
cout << "A: " << endl;
A.print();
cout << "B: " << endl;
B.print();
Для ввода массивов V = {1, 2, 0, -1, 0,9} и с = {0, 0,5, 1, -2, -5}. Выход будет:
A:
0
B:
-5.0000
который понимает. Любая работа для инициализации arma :: mat или arma :: colvector с массивами? Заранее спасибо!
Не используйте оператор <<, если вы не собираетесь инициализировать все элементы сразу (например. А << 4 << 5 << 9). Либо используйте цикл для установки элементов, либо используйте более эффективный метод конструктора aux_mem, описанный Мартином J ниже. – mtall
Да, я понял, что << оператор - это не путь. aux_mem работал. Благодаря! –