matlab - 在 MATLAB GUI 中的选择之间重置弹出菜单
问题描述
我正在尝试使用 animatedline 函数绘制动画,并使用 popupmenu 控制动画的速度。(如 1/2x、1x、2x、4x 等)。
以不同的速度创建我的动画没有任何问题。
问题是,例如,当我单击“案例 3”时,它开始绘制动画,当我单击案例 4(不等待案例 3 的动画结束)时,它会创建新的(案例 4)。直到这个时候我仍然没有任何问题。但是,当“案例 4”结束时,之前的选择仍在继续(案例 3)。我想弄清楚这个问题。我想要的是,一旦我做出新的选择,它应该忘记前一个。
我在下面附上了我的代码。
这个问题有什么解决办法吗?
提前致谢。
switch get(handles.threeDOF_animation_speed,'Value')
case 1
case 2
run('threeDOF_create_animation.m')
set(handles.button_3DOF_save_gif,'Enable','on')
case 3
run('threeDOF_create_animation.m')
set(handles.button_3DOF_save_gif,'Enable','on')
case 4
run('threeDOF_create_animation.m')
set(handles.button_3DOF_save_gif,'Enable','on')
case 5
run('threeDOF_create_animation.m')
set(handles.button_3DOF_save_gif,'Enable','on')
end
解决方案
在我看来,你需要先为你正在制作的每一个情节进行重置。因此,当您首先单击按钮然后使其运行动画时,请在轴上使用清除。
function ClearLinesFromAxes()
axesHandlesToChildObjects = findobj(gca, 'Type', 'line');
if ~isempty(axesHandlesToChildObjects)
delete(axesHandlesToChildObjects);
end
return; % from ClearLinesFromAxes
资料来源: https ://nl.mathworks.com/matlabcentral/answers/21006-how-to-erase-a-line
还有什么可能有效:
You probably want cla(), but perhaps you want clf()
资料来源:https ://nl.mathworks.com/matlabcentral/answers/40925-how-to-clear-a-plot-in-gui
推荐阅读
- java - CompoundIndexes 注释在 MongoDB 和 Spring 中不起作用
- azure - 将事件从 Azure 事件中心传送到 Azure 服务总线
- javascript - 如何通过单击表格行来检查单选按钮?
- python - 如何制作分类列计数子集的条形图?
- mongodb - 当其中一个字段位于子文档数组中时,如何从集合中获取两个字段的不同组合
- javascript - 有没有办法使用javascript在cookie中存储hrefs
- arrays - 使用 OpenMP 如何在 Fortran 中跨数组应用函数?
- java - 如何在 Repast Simphony 中删除随机化以进行测试?
- python - 如何将此 DRY 代码放入 for 循环?
- arrays - 无法将 Tableview 单元格值添加到 JSON 参数,为什么会为零?迅速