此处先引用一下别人的答案
https://blog.csdn.net/qq_42738639/article/details/100030821
别人的答案
因为popupmenu控件的string数目是动态变化的,但是matlab的popupmenu的value值变化后,会自动固定最大的value值,固定后,再输入的string数目少于value值,就会无法正常显示,建议在赋给下拉框string的同时,赋予value值。如
set(handles.popupmenu_str,‘value’, length(strs), ‘string’, strs);
补充说明一下,上述的str是下拉菜单的所有的选项组成的字符串数组。例如:str= {'动目标检测','目标移动检测'};
我的答案
一定是某个隐蔽处赋值出错!
在popumenu赋值的那一行代码下面查一查,你可能一不小心多赋值了一次,而多赋值的这一次的value超出了str的范围。这种情况往往是在你有很多个下拉菜单的情况下,你使用了一个菜单的设置,然后为了图省事,就复制了这个语句,结果popumenu的序号没有修改,且这两个popumenu的str中字符串的个数又不一样。