按钮只改变一次位置

Push button is only changing position once

我对 MATLAB GUIDE 中的回调函数有疑问。按下按钮时执行以下代码:

handles.xPos=handles.xPos+1
addX = handles.xPos
handles.shape2 =fill ([-2+addX 1+addX 1+addX -1+addX], [1 1 -1 -1], 'r');

这有效,但只有一次(旧的形状仍然存在,但这是一个单独的问题)。我调试了代码,确定按下按钮时总是调用回调函数,但由于某些奇怪的原因,第一次按下按钮后位置的变化没有任何效果。

我做错了什么?

您必须通过 guidata 更新您的句柄 以考虑 handles 的修改:

guidata(hObject,handles);

否则 handles 的修改将在回调执行结束时丢失。

最佳