Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab GUI,两个listbox,将数据从listbox1传递到listbox2并附加到旧数据_Matlab_User Interface - Fatal编程技术网

Matlab GUI,两个listbox,将数据从listbox1传递到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

在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中的字符串分配给列表框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);