matlab经常崩溃,Matlab gui WindowButtonMotionFcn在经常调用时会崩溃吗?

当在MATLAB GUI中频繁调用WindowButtonMotionFcn时,可能导致程序响应缓慢或崩溃。问题出在回调函数hover_Callback中,由于在鼠标移动时不断更新三个图表,造成资源消耗过大。解决方法包括防止回调重入的isMultipleCall函数检查,以及使用listener替代WindowButtonMotionFcn,减少图形对象的操作以提高性能。
摘要由CSDN通过智能技术生成

我已经将WindowButtonMotionFcn设置为我的回调,其中绘制了三个图,数据取决于鼠标位置.然而,对于MATLAB来说这似乎太过分了,因为在将鼠标移动一点之后,GUI停止响应.

我使用此代码(从某人复制的部分):

set(handles.figure1, 'windowbuttonmotionfcn', @hover_Callback);

function hover_Callback(hObject, handles, eventdata)

inside = false;

pos = get(handles.axes1, 'currentpoint');

xlim = get(handles.axes1, 'XLim');

ylim = get(handles.axes1, 'YLim');

if (pos(1,1) > max(xlim(1), 1) && ...

pos(1,1) < xlim(2) && ...

pos(1,2) > ylim(1) && ...

pos(1,2) < ylim(2))

inside = true;

end

if ~inside

return

end

ix = round(pos(1,1));

iy = round(pos(2,2));

axes(handles.axes2); cla; plot(squeeze(t2(ix,iy,:)), squeeze(d2(ix,iy,:)));

axes(handles.axes3); cla; plot(squeeze(t3(ix,iy,:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值