我想要的很简单,或者我想。我有很多计算和显示的光谱,计算起来很耗时,所以我想将它们保存在变量中以显示它们而不需要重新计算。问题是,如果我直接使用函数spectogram(),我无法找到一种方式来绘制它们。
示例:
sampling_rate = 100;
spectrogram(data,100,20,[],sampling_rate,'yaxis');
caxis([-20 60])
这会完全按照我的要求显示一个光谱图:
我阅读了文档,我明白我可以通过这样做来保存结果:
[S,F,T] = spectrogram(data,100,20,[],sampling_rate);
另外,我知道函数spectogram内部调用surf()。
我发现this post似乎通过这样做解决了我的问题:
[S,F,T] = spectrogram(data,100,20,[],sampling_rate);
surf(T,F,abs(S),'EdgeColor','none');
axis tight; view(0,90);
但是我得到了这个情节,这远远超出我的预期:
轴标签和颜色条消失了,颜色完全没有缩放。如果我通过以前添加colorbar; caxis([-20 60]);
手动执行此操作,我会得到这个:
是不是有一个简单的解决方案来保存眼镜并按命令显示?
赞S = spectogram(...)
然后plot(S)
?