我有一個對角佔優的矩陣,大小爲16000 * 16000.我想爲我的實驗提取該矩陣的前n行n列(例如前100 * 100個單元格),從而對所提取矩陣對角線仍然試圖dominant.My做到這一點是:從C++的文本文件中讀取某個偏移量
#include <stdio.h>
#include <string.h>
#include <mpi.h>
#include <stdlib.h>
int main()
{
double **Matrix_A;
FILE *fp;
int global_size = 100;
int offset = 0;
if ((fp = fopen ("matrix_16000.txt", "r")) == NULL) {
printf("Can't open input matrix file");
exit(-1);
}
Matrix_A = (double **) malloc(global_size*sizeof(double *));
for(int irow = 0; irow < global_size; irow++)
{
offset = irow * 16000;
fseek(fp, offset, SEEK_SET);
Matrix_A[irow] = (double *) malloc(global_size * sizeof(double));
for(int icol = 0; icol < global_size; icol++){
fscanf(fp, "%lf", &Matrix_A[irow][icol]);
}
}
fclose(fp);
return 0;
}
這不會起作用,因爲偏移是不固定的,因爲矩陣,隨機生成的。知道我的編譯器是mpicc的任何更好的主意
mpicc心不是一個編譯器,它的許多編譯的一個周圍的包裝......這也心不是最小編譯例如 – Vality
該代碼是很長的。這僅僅是一個提取。我的意思是在運行我的代碼時,我只是使用帶默認選項的mpicc命令。 – Nawal
@Nawal所以**製造** [mcve]。爲什麼我們應該投入我們的時間來幫助你,如果你連一個我們可以使用的例子都打擾不了? –