Matlab GUI,两个listbox,将数据从listbox1传递到listbox2并附加到旧数据
在listbox1中,我有很多数据,现在我选择其中的一些数据并单击按钮,这些选择的数据可以显示在listbox2中。然后我继续选择listbox1中的数据并单击按钮,listbox2中的旧数据消失,新数据显示在listbox2中。下面是回调函数中的代码:Matlab GUI,两个listbox,将数据从listbox1传递到listbox2并附加到旧数据,matlab,user-interface,Matlab,User Interface,在listbox1中,我有很多数据,现在我选择其中的一些数据并单击按钮,这些选择的数据可以显示在listbox2中。然后我继续选择listbox1中的数据并单击按钮,listbox2中的旧数据消失,新数据显示在listbox2中。下面是回调函数中的代码: function pushbutton1_Callback(hObject, eventdata, handles) list_entries = get(handles.listbox1,'String'); index_sele
function pushbutton1_Callback(hObject, eventdata, handles)
list_entries = get(handles.listbox1,'String');
index_selected = get(handles.listbox1,'Value');
Length = length(index_selected);
Newlist = list_entries;
for i=1:Length
n = index_selected(i);
handles.element(i) = list_entries(n)
if i==1
Newlist(n) = []
else
Newlist(n-1) = []
end
end
set(handles.listbox1,'String',Newlist);
set(handles.listbox2,'String',handles.element);
请帮我解决这个问题,非常感谢。如果您只是想用其他字符串替换列表框中的数据(即字符串),您不必经历实际删除旧数据的过程。您只需将列表框1中的字符串分配给列表框2即可
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.listbox2,'String',get(handles.listbox1,'String'));
编辑在您的评论之后,似乎要将新数据/字符串(来自列表框1)附加到列表框2中的现有字符串。您可以按如下方式轻松连接字符串的单元格数组:
假设listbox 1和listbox 2中的字符串按常规获取:
String1 = get(handles.listbox1,'String');
String2 = get(handles.listbox2,'String');
例如String1={'A''B''C'}
和String2={'D''E''F'}
然后,可以连接单元格数组并设置listbox2的string属性,如下所示:
NewString = [String1 String2]
鉴于此:
NewString =
'A' 'B' 'C' 'D' 'E' 'F'
那么就用这个
set(handles.listbox2,'String',NewString);
你可以走了
希望现在没问题。不,我不只是想更换。我想将boxlist1中的选定项目添加到boxlist2。用户将选择任何项目并将其传递给listbox2。还有一个问题:如果我选择listbox1中的所有数据并按下按钮,listbox2就会消失。你知道这是怎么回事吗?不,这不应该发生。可能您使用了诸如set(handles…]=[]的赋值,如上所述,它删除了listbox?或者您将'visible'属性设置为'off'Maybe?哦,我已经解决了这个问题。添加这个,并结束:set(handles.listbox1,'Value',1);