Matlab GUI,两个列表框,将数据从listbox1传递到listbox2并附加到旧数据

时间:2014-10-03 20:20:08

标签: matlab user-interface

在listbox1中,我有一些数据,现在我选择其中一些并单击按钮,这些选定的数据可以显示在listbox2中。然后我继续在listbox1中选择数据并单击按钮,listbox2中的旧数据消失,新数据显示在listbox2中。这里是回调函数中的代码:

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 个答案:

答案 0 :(得分:0)

如果您只想用其他字符串替换列表框(即字符串)中的数据,则不必执行实际删除旧数据的过程。您只需将列表框1中的字符串分配给列表框2,就可以了。

function pushbutton1_Callback(hObject, eventdata, handles)

set(handles.listbox2,'String',get(handles.listbox1,'String'));

编辑在您的评论之后,您似乎想要将新数据/字符串(从列表框1)附加到列表框2中的现有字符串。您可以轻松地连接字符串的单元格数组,如下所示:

假设列表框1和列表框2中的字符串像往常一样获得:

String1 = get(handles.listbox1,'String');
String2 = get(handles.listbox2,'String');

例如String1 = {'A' 'B' 'C'}String2 = {'D' 'E' 'F'}

然后你可以连接单元格数组并设置listbox2的字符串属性,如下所示:

NewString = [String1 String2]

给出这个:

NewString = 

    'A'    'B'    'C'    'D'    'E'    'F'

然后使用此

set(handles.listbox2,'String',NewString);

你很高兴。

希望现在没事。