【问题标题】:How cam I zoom in spectrogram horizontally in my codes?如何在代码中水平放大频谱图?
【发布时间】:2015-02-04 02:58:56
【问题描述】:

我试图从用户那里得到 2 分并显示这些点之间的频谱图,我使用以下代码成功地做到了,但我不知道为什么让我低于错误?

我也想知道,如果我想在我的代码中放置一个重置按钮以将绘图恢复到初始状态,我该怎么做?

function From_Callback(hObject, eventdata, handles)

handles.from=str2double(get(hObject, 'String'));
guidata(hObject,handles);


function From_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function To_Callback(hObject, eventdata, handles)

handles.to=str2double(get(hObject, 'String'));
guidata(hObject,handles);



function To_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function Zoomb_Callback(hObject, eventdata, handles)

minY=min(str2double(get(handles.Samplef, 'String')))*1000;
maxY=max(str2double(get(handles.Samplef, 'String')))*1000;
axes(handles.axes2);
axis([handles.from, handles.to, minY, maxY ]);

使用集合出错 发现错误的属性值。 对象名称:轴 物业名称:'YLim' 值必须是递增且非 NaN。

轴错误>LocSetLimits(第 208 行) 设置(斧头,...

轴错误(第 94 行) LocSetLimits(ax(j),cur_arg);

M_player 中的错误>Zoom_Callback(第 202 行) 轴([handles.from,handles.to,minY,maxY]);

gui_mainfcn 中的错误(第 96 行) feval(varargin{:});

M_player 中的错误(第 42 行) gui_mainfcn(gui_State, varargin{:});

错误 @(hObject,eventdata)M_player('Zoomb_Callback',hObject,eventdata,guidata(hObject))

评估 uicontrol 回调时出错

【问题讨论】:

  • 那么在您调用axis([...] 时,y 轴的限制是minY 到maxY,它们是相同。因此您会收到错误消息。也许您在获取 minY 或 maxY 时出错了?
  • 谢谢。我只想要 x 轴缩放变化和 y 提醒它的缩放,但不知道我该怎么做!我试图从频谱图中获取 y 比例但没有成功:(

标签: matlab reset zooming


【解决方案1】:

好的,根据您的评论,这是您如何仅更改 x 轴的比例并保持 y 轴范围相同的方法。

为了从axes2获取y轴的实际限制,您可以使用以下内容:

ylimit = get(handles.axes2,'YLim')

值的格式与坐标轴的格式相同,即像素、归一化等

这将为您提供一个包含最小值和最大值的 2 元素向量。因此,在您在代码中调用axis 时,您可以使用它来保持y 轴的范围不变:

ylimit = get(handles.axes2,'YLim')
axis([handles.from, handles.to, ylimit(1), ylimit(2)]);

希望这就是你的意思!

【讨论】:

  • 但是,你能说我如何获得频谱图频率并将 y 轴刻度更改为我想要的吗?
  • 另外,如何在重置按钮中编码以将 x 轴恢复到其第一个刻度?
  • 我的荣幸!您可以将这些作为新问题发布吗?这样更多的人会看到他们并提供替代答案:)
  • 我解决了这个问题,但我还有很多其他问题要问;)
猜你喜欢
  • 2018-10-13
  • 2023-02-14
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多