大家好,我是 C++ 的新手,我正在尝试做一些用 Matlab 很容易做到的事情。我有一个计算 vector 的 for 循环。然后我想存储这个 vector ,以便我可以在循环之外访问它。
for(ii=0; ii < numObs; ii++} {
someVector = ...
someMatrix[ii][:] = someVector
}
someMatrix[ii][:] 当然不起作用,但这就是我想做的。任何帮助表示赞赏,谢谢!
说明:someVector 是一个 1xn 元素 vector ,每次在循环中计算。我只是想将它存储在矩阵或数组(不确定是什么)中,以便我可以调用 someMatrix[ii] 并取回 vector 。
最佳答案
您可能正在寻找类似的东西:
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));
}
这里的缺点之一是您必须在计算代码中确保每个 vector
将具有相同数量的元素(上面的代码未验证它)。
请注意,这绝对不是处理矩阵的最佳方式,我建议您查看一些专用库(boost::numeric、用于图像处理的 OpenCV、Armadillo 或其他许多库之一),如果您想对其进行认真的计算。
关于C++在循环期间将 vector 存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40183340/