您好我是C ++的新手,我正在尝试使用Matlab做一些非常容易的事情。我有一个用于计算向量的for循环。我想存储这个向量,以便我可以在循环之外访问它。
for(ii=0; ii < numObs; ii++} {
someVector = ...
someMatrix[ii][:] = someVector
}
someMatrix [ii] [:]当然不起作用,但这就是我想做的事情。任何帮助都表示赞赏,谢谢!
澄清:someVector是一个1xn元素向量,每次在循环中计算。我只是想将它存储在矩阵或数组中(不确定是什么),以便我可以调用someMatrix [ii]并获取向量。
答案 0 :(得分:1)
你可能正在寻找类似的东西:
$rootScope
这里的一个缺点是你必须在计算代码中保证每个std::vector<std::vector<double>> matrix; // matrix - vector of vectors
for(int i = 0; i < numObs; ++i) {
std::vector<double> vec = ... // your calculations go here
// if no C++11 - don't use std::move
matrix.push_back(std::move(vec));
}
将具有相同数量的元素(上面的代码不会验证它)。
请注意,这绝对不是处理矩阵的最佳方式,我建议您查看一些专用库(boost :: numeric,OpenCV用于图像处理,Armadillo或其他十几个库中的一个)如果你想对它进行严格的计算。