Я не могу использовать ввод с клавиатуры для установки значений переменных векторного или матричного типа, определенных с помощью библиотеки Armadillo. Это код, который я использую.
#include <iostream>
#include "armadillo"
using namespace arma;
using namespace std;
int main()
{
vec mu1;
cin>> mu1;
return 0;
}
Я получаю следующее сообщение об ошибке
"E: \ cpp \ hell \ mvnsamp.cpp | 18 | ошибка: нет соответствия для 'operator >>' (типы операндов: 'std :: istream {aka std :: basic_istream}' и 'arma :: vec {aka arma :: Col} ') "
Пытается ввести значения одно за другим, используя cin >> mu1 (i). Я также попытался принять ввод в виде массива, а затем назначить элементы mu1.
float arr[20]={};
for(int i=0;i<5;i++)
{
cin>> arr[i];
}
mu1(0)=arr[0];
Это дало ошибку в окне вывода
«ошибка: Mat :: operator (): завершение индекса за пределами границ вызывается после выброса экземпляра ошибки std :: logic what (): Mat :: operator (): index за пределами границ».
У меня возникала аналогичная проблема всякий раз, когда я пытался выполнить задание, которое включает подматрицу с левой стороны. Например:
B.row(1)=A
Я хотел бы знать, можно ли присвоить значения типам матриц / векторов с клавиатуры. Кроме того, есть ли способ установить значения для подматрицы типа mat с помощью простого присваивания.