1
我想打開兩個文件(linoteste.ima和sysmattest.dat),它們都包含一個矩陣。成功打開文件後,當我打印它們時,我只能得到包含零的矩陣,並且我不知道我做錯了什麼。這不是一個與CUDA相關的問題,而是一個C語言問題,它只是打開文件以與CUDA進行矩陣乘法。我的代碼如下(我已經試過了,而cicle更換的fread讀取一次一個元素,但它不工作):提前在CUDA中打開文件C
float*matlino=(float*)malloc(sizeof(float)*100*100);
float*matsys=(float*)malloc(sizeof(float)*10000*10000);
//Open linogram
FILE * flino, *fmat;
flino = fopen ("linoteste.ima","r"); //also tried with "rb" instead of "r"
if (flino!=NULL)
{
fread (matlino,sizeof(float),100*100,flino);
fclose (flino);
puts("Linograma aberto com sucesso");
}
else
puts("impossivel abrir linograma");
printMat(matlino,10,10);
//Open system matrix
fmat = fopen("sysmattest.dat","r");
if (fmat!=NULL)
{
fread (matsys,sizeof(float),10000*10000,fmat);
fclose (fmat);
puts("Matriz sistema aberta com sucesso");
}
else
puts("impossivel abrir matriz sistema");
謝謝!
也許printMat()有問題嗎? – 2011-03-17 12:19:47
你在用什麼操作系統? flino是NULL還是無法獲得所需的數據? – DavidMFrey 2011-03-17 12:25:51
你是如何在第一個地方寫出矩陣的 - 就像浮點數組的轉儲一樣?文件是否滿零? (是的,我希望你需要「rb」)你從fread獲得什麼樣的回報價值? – Rup 2011-03-17 12:28:31