注册 登录
编程论坛 C++教室

如何将文本中矩阵导入C++程序并把矩阵的值赋给一个二维数组。

东风柔 发布于 2016-08-31 13:22, 1904 次点击
只有本站会员才能查看附件,请 登录

上图是一个图像文件对应的灰度矩阵,我怎样才能把这个矩阵读入到C++程序中,并将这个矩阵的值赋给一个二维数组呢?
先行感谢各位高手。
1 回复
#2
rjsp2016-08-31 15:22
二维矩阵 中的 二维 是编译期确定的,比如 double mtx[1920][1080],你能保证这一点吗?

所有一切无非就是从文件 fscanf("%lf" 得来,代码怎么写取决于你想达到什么效果。
假设编译期不知道有多少行多少列,那么我就定义一个 size_t row 用来保存行数,一个 size_t col 用来保存列数,一个 vector<double> data 用来保存 row*col 个数据。
先读取第一行,解析一个个double类型,如果解析失败,直接将电脑砸掉。将解析出来的数据保存到data尾部,同时将这行解析出的数量保持到 col;
然后读取第二行,解析一个个double类型,如果解析失败,直接将电脑砸掉。将解析出来的数据保存到data尾部,同时比较这行解析出的数量是不是和col相同,不同的话,将电脑砸掉;
其后一行一行的读取,直到行读取失败,每一行的处理同第二行的处理。
最后,将行数保存到 row 中就行了。

第r行第c列的数据就是 data[r*col+c]
1