我在 C 中创建了一个 500x500 的矩阵,如果有人想看的话,它大约是 1MB --> (http://www.megafileupload.com/8mad/test)。我需要将它读入 Matlab,以便我可以使用 imagesc
将其可视化。它应该是一些数学生成的艺术品,我很好奇它是什么样子。
到目前为止我试过这个:
fid = fopen('test', 'r')
mydata = fread(fid, 'double')
但实际上并没有用。
另一方面,如果有人可以建议一种不同的方式来编写文件,使其对 Matlab 更友好,我们将不胜感激。
我的文件基本上包含一个具有 500x500 个元素的 integer
类型的矩阵。
这是我在 C 上的保存方式:
if(fwrite(img, sizeof(int), w*h, fp) != w*h)
printf("File write error.");
fclose(fp);
最佳答案
检查以下内容:
- 打开文件
测试
进行阅读。 - 将
int32
类型的 500x500 元素读入矩阵I
。 - 关闭文件。
- 转置矩阵
I
- 因为 C 的二维数组是 row major ,而MATLAB矩阵是列专业的,你需要转置一个用C写的矩阵,然后用MATLAB读。 - 使用
imagesc
显示图像。
f = fopen('Test', 'r');
I = fread(f, [500, 500], 'int32');
fclose(f);
I = I';
imagesc(I);
关于c++ - 如何将 C 输出文件读入 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42045610/