提取2×2子矩陣是一個很基本的用戶,不知道太多關於在C中使用的命令,所以請多多包涵......我不能使用非常複雜的代碼。我在stdio.h中和ctype.h中圖書館的一些知識,但多數民衆贊成它。 我有一個矩陣在一個txt文件中,我想根據我輸入的行數和列數加載矩陣我如何從一個更大的矩陣
例如,我在文件中有一個5乘5的矩陣。我想提取一個特定的2乘2的子矩陣,我該怎麼做?
我創建使用嵌套循環:
FILE *sample
sample=fopen("randomfile.txt","r");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
fscanf(sample,"%f",&matrix[i][j]);
}
fscanf(sample,"\n",&matrix[i][j]);
}
fclose(sample);
可悲的是代碼不起作用。如果我有這樣的矩陣:
5.00 4.00 5.00 6.00
5.00 4.00 3.00 25.00
5.00 3.00 4.00 23.00
5.00 2.00 352.00 6.00
並輸入列3行和3,我得到:
5.00 4.00 5.00
6.00 5.00 4.00
3.00 25.00 5.00
不僅這不是一個2乘2的子矩陣,但即使我想要前3行和前3列,它不正確地打印出來....
我需要3行和第3欄開始,然後坐2×2子矩陣!
我應該已經結束了:
4.00 23.00
352.00 6.00
聽說我可以用fgets和sscanf做到這一點。這裏是我的審判代碼:
fgets(garbage,1,fin);
sscanf(garbage,"\n");
但是,這並不工作要麼:(
我在做什麼錯
請幫 感謝
爲什麼要刪除這個問題的最後一次你發佈了嗎? http://stackoverflow.com/questions/2796071/how-to-extract-a-submatrix-from-a-matrix如果你刪除你的問題,它使人們不太可能會花時間給出好的答案。 – 2010-05-09 13:36:18
我在這個問題上犯了一個錯誤,我想要一個2by2子矩陣(我的錯誤) – NLed 2010-05-09 13:37:28
未來,如果在你的問題中有一個錯誤,你最好糾正它,而不是做一個全新的職位。 – dbyrne 2010-05-09 13:49:31