我正在开发一个带有两个轴和两个按钮的 GUI(使用 Matlab 中的指南创建)。当用户按下按钮 1 时,我想在轴 1 上显示图像,当用户按下按钮 2 时,我想在轴 2 上显示图像。
这是我的代码:
function pushbutton1_Callback(hObject, eventdata, handles)
axes(handles.axes1);
imagesc(table(:,:,1));colormap(gray),axis('square');
guidata(hObject,handles);
function pushbutton2_Callback(hObject, eventdata, handles)
axes(handles.axes2);
imagesc(table(:,:,1));colormap(gray),axis('square');
guidata(hObject,handles);
此代码仅在用户第一次按下按钮时才能正常工作。当他再次执行此操作时,程序崩溃并且我收到以下错误:“引用不存在的字段'axes1'”。
当我显示所有句柄时,我看到句柄“axes1”确实丢失了。
当我将轴的 NextPlot 属性更改为“新”时,我没有收到此错误。但是,在那种情况下,我根本无法显示图像。我的意思是我没有得到错误,但我四分之一的图像(右上角)是灰色的,其余的是白色的。两个维度的绘图范围都是 (0,1),而不是 (0,2000)。在我看来,这只是我图像的一个像素。
我究竟做错了什么?