如何在matlabappdesigner里,用ginput获取app.uiaxes的坐标,而不是弹出的窗口figure坐标
时间: 2024-10-21 22:15:31 浏览: 96
在MATLAB App Designer中,如果你想在`uiaxes`组件上使用`ginput`获取坐标,而不是整个应用程序的`figure`坐标,你可以直接对`uiaxes`对象执行`ginput`,因为`uiaxes`有自己的独立坐标系统。以下是步骤:
1. **定位组件**: 在App Designer中找到包含你要使用的`uiaxes`组件的部分。这可能是`Graphics View`、`Axes` 或者自定义的`User Interface Axes`。
2. **获取`uiaxes`句柄**: 双击`uiaxes`组件以进入设计模式,然后右键点击,选择“Copy Object”将其复制到变量中,例如`myAxes`。如果你已经在代码中引用了这个`uiaxes`,则可以跳过此步骤。
3. **修改`ginput`函数**: 如果你已经有了`ginput`函数,可以在回调函数中指定目标`uiaxes`。例如,假设你的`pushButton_Callback`函数如下:
```matlab
function pushButton_Callback(hObject, eventdata, handles)
ginput(1, handles.myAxes); % 更改这里,将`handles.myAxes`替换为你的`uiaxes`句柄
end
```
4. **运行App**: 现在,当你点击按钮时,将会在你指定的`uiaxes`内弹出一个提示框让你选择一个点,返回的就是`uiaxes`的本地坐标。
注意:确保你在`ButtonDownFcn`或相关回调中使用`ginput`,否则会触发整个窗口的事件。
阅读全文