2012-01-27 47 views
0

對於作業分配,我必須從文件中讀取增廣矩陣,然後使用部分偏移執行高斯消除。問題是,我們需要加載任何大小矩陣(正方形或不是),增加矢量b。從文件中加載動態增廣矩陣C

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數組。

回答

0

您可以使用strtok函數讀取由空格分隔的數字並計算令牌的數量以瞭解矩陣的維數。

strtok是執行字符串令牌化的函數。

見C-常見問題解答關於如何使用strtok一個例子:

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

+0

謝謝你,這就是我一直在尋找,但無法找到它。 – Copephobia 2012-01-27 22:19:18

+0

@Copephobia不客氣! – ouah 2012-01-27 22:20:22