Мой вопрос заключается в том, как инициализировать собственную матрицу, но НЕ следующим образом:
matrix << 1,0,1,0,
1,0,1,0,
1,0,1,0,
У меня есть матрица, которая выглядит как выше (запятые или никакие запятые не имеют значения) хранится в txt файле.
Я уже написал функцию для чтения в каждой строке и поместил ее в вектор теперь я хочу создать матрицу с этими данными
Но он не работает, и я не могу найти какую-либо страницу, которая объясняет, как назначать данные в матрицу, не записывая только значения. (например, пример выше)
Все, что мне нужно, это данные из моего файла в собственной матрице
То, что я пробовал до сих пор: (PS: была идея с итераторами, но я думаю, что это займет слишком много времени с действительно большими матрицами, я просто попробовал этот пример с 1-2-мерной матрицей)
int readFromFile (const char * path, vector <string> & mv)
{
fstream file;
string line;
file.open(path);
while (getline(file,line))
{
mv.push_back(line);
}
file.close();
return 0;
}
typedef Matrix <int, 1, 2> MyMatrix;
int fromVectoEigen (vector<string> & source, MyMatrix & target)
{ //for (int i = source.size(); i<0 ; i--)
//{
string valuerow = source.back();
string::iterator it = valuerow.begin();
target.row(0)<< *it;
target.row(0)<<*it+1;
//source.pop_back();
//}
return 0;
}
К сожалению, не могу просто сказать Matrix.row(i) = vector.back()
, что не работает.