如何将图形保存在MAT文件中?

时间:2019-09-14 07:52:09

标签: matlab spectrogram mat-file

我想将图像直接保存为256x256大小的MAT文件。但是,我发现保存的MAT文件大小不同,并且使用imagesc显示图像时,它似乎与原始图像有些不同。我将展示我的代码,并希望有人可以帮助我解决它。

spectrogram(x,window,L,N,fs);
set(gcf,'position',[500,500,205,205]);
set(gca,'Position',[0 0 1 1]);
f=getframe(gcf);
mat=getimage(gcf);
save(['D:\matlab\speech\mydata\cleanmat\',strcat(int2str(i)),'.mat'],'mat','-v6');

1 个答案:

答案 0 :(得分:1)

save在这里没有发生任何意外情况。问题是y轴的方向反转。换句话说,图像像素从左上角开始计数,而绘制通常是从左下角开始。

如果您在代码中删除了此行set(gca,'Position',[0 0 1 1]);,您将能够看到它。


注意以下图中突出显示的部分。

使用documentation中的代码绘制的频谱图:

imagesc(mat);给出:


那该如何解决?
只需反转y轴方向即可。

imagesc(mat);
set(gca,'YDir','normal');

结果: