我在c中使用以下循环创建了一个二进制矩阵
char filename[6];
filename=sprintf(filename,"file01");
moutput=fopen(filename,"wb+");
for (i=0; i<2*m+1; i++){
for (j=0; j<2*n+1; j++) {
r=rmin+(rmax-rmin)*GetRand(N);
fwrite(&r, sizeof(double), 1, moutput);
}
}
fclose(moutput);
其中 r 是一个均匀分布的伪随机双精度数和. 我验证它正确地写入了值。
因此,我使用本教程作为将“file01”加载为二进制矩阵的指南。我运行了以下脚本:
make ex1
./ex1 -f0 file01
但是,它似乎不起作用。我收到一条错误消息:
[0]PETSC ERROR: Unexpected data in file!
[0]PETSC ERROR: not matrix object in file!
是我最初编写二进制文件的问题还是我使用错误的示例来加载这个特定的二进制文件?