我正在使用matlab将信号转换为谱图,然后将其保存为png图像文件。
我想只有情节,没有边框,轴或传说。
(额外问题:如何获得灰度谱图?)
以下是我使用的代码:
for index = 1:Nb_Samples
%Loads the data from the current example
Time_Data = Data4{1,index}.time;
Signal_Data = Data4{1,index}.values;
figure(1)
%Generates the spectrogram for the current example
spectrogram(Signal_Data,hamming(CustomHammingWindowSize1),CustomHammingWindowSize1/2,(PatchWindowSize^2-1)*2,1000,'yaxis')
h=gcf;
set(h,'PaperPositionMode','auto');
set(h,'PaperOrientation','landscape');
set(h,'Position',[20 20 1100 700]);
print(gcf, '-dpng', 'Spectro.png')
end
答案 0 :(得分:2)
最好的方法是直接保存数据,而无需绘制数据,例如使用imwrite
,你用来绘制的任何东西都必须是NxM矩阵,即图像。
正如@CrisLuengo在评论中所说,只需抓取spc=spectogram(...
输出,将其缩放为[0-1]并使用imwrite
保存,以获得最佳效果。
我不建议在这种情况下使用它,但您可以随时colormap(gray)
,axis off
等等,只是不要致电colorbar
(或colorbar('off')
)来删除图中有额外的东西。但要做好科学!正确保存数据,不要通过添加额外的绘图步骤来引入工件。