Matlab 如何将两个轴的比例设置为彼此相同?

Matlab 如何将两个轴的比例设置为彼此相同?,matlab,axis,Matlab,Axis,我通过以下代码读取wave文件: [filename pathname]=uigetfile('*.wav', 'Select a wave file'); [y,fs,nbits]=wavread(fullfile(pathname, filename)); 并根据以下代码绘制其光谱图和波形: axes(handles.axes1); plot(y); axes(handles.axes2); spectrogram(y,str2double(get(handles.Frame,'Stri

我通过以下代码读取wave文件:

[filename pathname]=uigetfile('*.wav', 'Select a wave file');
[y,fs,nbits]=wavread(fullfile(pathname, filename));
并根据以下代码绘制其光谱图和波形:

axes(handles.axes1);
plot(y);

axes(handles.axes2);
spectrogram(y,str2double(get(handles.Frame,'String')), str2double(get(handles.Overlap,'String')),[], str2double(get(handles.Samplef ,'String'))*1000, 'yaxis');
但我在轴刻度上有很多不同!我希望两个绘图都具有相同的X轴比例(以秒或毫秒为单位),如何才能做到这一点? 我做了xlim,但没有得到适当的结果:(

当你做
绘图(y)
时,X轴不代表时间,而只代表每个数据点的索引

您必须构建一个适当的时间向量,并将其用作绘图的扩展数据。 差不多

[y,fs,nbits]=wavread(fullfile(pathname, filename));
xtime = (0:numel(y)-1)/fs ; %// build a time vector according to sampling frequency
后来:

axes(handles.axes1);
plot( xtime , y ); %// plot 'y' versus TIME

现在,两个图上的时间向量应该是相似的,XLim应该可以正常工作。(前提是您将正确的采样频率发送到频谱图。您似乎从文本框中读取它并将其乘以1000。确保频谱图命令接收的采样频率与
wavread
返回的采样频率相同)

你能发布一些可以自己工作的代码吗?如果你对两个绘图轴进行xlim,你会得到你想要的。它们“不合适”是什么意思?我的x_轴数据是错误的,当我对两个绘图进行xlim相等时,其中一个给出了错误的绘图。非常感谢,我这样做了,但正好相反!(绘图(y,totaltime)。