从C中的文件加载动态增强矩阵

时间:2012-01-27 22:13:10

标签: c matrix

对于家庭作业,我必须从文件中读取增强矩阵,然后使用部分旋转执行高斯消除。问题是我们需要加载使用向量b增加的任何大小的矩阵(方形或非方形)。

显然,

Ax = b是等式,我们得到一个包含[A b]的文件。该文件的示例如下:

  

2.0000000000000000e + 000 2.0000000000000000e + 000 1.0000000000000000e + 000 4.0000000000000000e + 000 2.0000000000000000e + 000 1.0000000000000000e + 000

     

1.0000000000000000e + 000 3.0000000000000000e + 000 2.0000000000000000e + 000 -3.0000000000000000e + 000 2.0000000000000000e + 000 2.0000000000000000e + 000

     

4.0000000000000000e + 000 0.0000000000000000e + 000 0.0000000000000000e + 000 2.0000000000000000e + 000 3.0000000000000000e + 000 3.0000000000000000e + 000

     

-2.0000000000000000e + 000 1.0000000000000000e + 000 1.0000000000000000e + 000 0.0000000000000000e + 000 2.0000000000000000e + 000 2.0000000000000000e + 000

     

3.0000000000000000e + 000 8.0000000000000000e + 000 4.0000000000000000e + 000 -7.0000000000000000e + 000 8.0000000000000000e + 000 1.0000000000000000e + 000

在这个文件中,每行有6个双打,所以它是一个5x5矩阵,矢量b用它增加。

由于我不允许对大小使用命令行参数(其他参数是文件),我很想知道如何将双打加载到Matrix中。每个测试文件都有不同的行数,例如一行有3行,另一行有10行。

矩阵将存储为2d数组。

1 个答案:

答案 0 :(得分:0)

您可以使用strtok函数读取以空格分隔的数字,并计算令牌数以了解矩阵的尺寸。

strtok是一个执行字符串标记的函数。

有关如何使用strtok的示例,请参阅c-faq:

http://c-faq.com/lib/strtok.html