这种情况是,我知道如何将所有数据从一个列表框传输到另一个列表框,然后清除listbox1。我是这样做的: function pushbutton1_Callback(hObject,eventdata,handles)
StringInLB1 = get(handles.listbox1,' string');
集(handles.listbox2,'串',StringInLB1);
集(handles.listbox1,'串''&#39);
现在我的问题是:如何将一些选定的数据传输到listbox2?我" ctrl +单击" listbox1中的多个数据,但我如何使用thoes数据?
非常感谢。
答案 0 :(得分:0)
如果您使用
tmp = get(handles.listbox1,'string');
您将看到变量是什么样的。然后你可以使用像
这样的东西set(handles.listbox1,'string',tmp{2});
答案 1 :(得分:0)
看起来您正在寻找为列表框回调分配一些功能。即,每次用户更改选择时,您都希望对数据执行某些操作。无论如何,这是我对你对@James回答的评论所理解的。
如果是这种情况,这里有一个示例代码,生成一个简单的GUI,用户可以通过单击列表框直接更改图表的颜色:
function DummyListBox
global hFig hListBox hPlot
ScreenSize = get(0,'ScreenSize');
hFig = figure('Visible','off','Position',[ScreenSize(3)/2,ScreenSize(4)/2,450,285]);
ColorString = {'Red';'Green';'Blue'}; % Define string populating the listbox
hListBox = uicontrol('Style','Listbox','String',ColorString,'Position',[315,150,70,50],'max',3,...
'min',1,'Callback',@ListBox_Callback); %%// added 'min' and 'max' properties to select multiple items
hText = uicontrol('Style','Text','Position',[315,220,70,35],'String','Empty now'); %%// Add text box
hAxes = axes('Units','Pixels','Position',[50,60,200,185]);
set(hFig,'Visible','on')
x = 1:5*pi;
hPlot = plot(x,sin(x),'-r','Parent',hAxes); %display some data
% Listbox callback: each time the selection changes, the color of the
% plot changes accordingly.
function ListBox_Callback(~,~)
SelectedValues = get(hListBox,'Value'); % Get the values selected
set(hText,'String',SelectedValues); % Uptdate the string in the textbox
NewColor = ColorString{get(hListBox,'Value')};
set(hPlot,'Color',NewColor)
end
end
输出现在看起来像这样:
正如您所看到的,颜色发生变化的功能是列表框的回调。希望这是你想要的。如果没有,请更具体地说明你想要什么。谢谢!
编辑:正如您所看到的,我添加了一个文本框,以显示在列表框中选择多个项目时的外观。为此,您必须添加“分钟”。和一个' max'创建列表框时的属性。我将它们分别设置为1和3。 '价值'列表框的属性对应于从列表中选择的项目的实际编号。因此,如果您的3个项目是我的例子,则值可以是1,2,3或任意组合。它们显示在文本框中。您可以从这些值中获取相应的数据,存储在向量中。
所以回答你的问题,你可以写:
Data1 = ValuesVector(1)
Data2 = VectorValues(2)
... and so on