我该如何传输文件到C ++中增强的uBLAS矩阵?(How do I stream a file i

2019-09-22 12:40发布

我想阅读包含矩阵数据转换成升压矩阵的文件。 “”已经应该有这样的事情运算符重载,我可以把它写入标准流(COUT)。 我不知道这有什么错走另一条路。 我是相当新的C ++,所以我猜我正在做有关文件流的不正确的假设,但它似乎它是有道理的。 这里是网页我要去:

http://www.boost.org/doc/libs/1_51_0/boost/numeric/ublas/io.hpp

http://www.cplusplus.com/reference/iostream/ifstream/ifstream/

这里是我的代码:

using namespace std;
matrix<double> M;
ifstream s("C:\temp\perm.txt", ifstream::in);

s >> M;
s.close();

std::cout << M;

下面是我的文件看起来像:

[4,4]((0,0,1,0),(0,0,0,1),(0,1,0,0),(1,0,0,0))

Answer 1:

这里是一个小例子,请尝试一下,看看会发生什么。 如果这也不行,我怀疑的问题是,文件路径是错误或项目未能从文本文件阅读:

#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <iostream>
#include <fstream>

int main()
{
    boost::numeric::ublas::matrix<double> m;
    std::ifstream s("C:\temp\perm.txt");
    if (!s)
    {
        std::cout << "Failed to open file" << std::endl;
        return 1;
    }
    if (!s >> m)
    {
        std::cout << "Failed to write to matrix" << std::endl;
        return 1;
    }
    std::cout << "Printing matrix: ";
    std::cout << m;
}


文章来源: How do I stream a file into a matrix in C++ boost ublas?