Matlab 如何从对话框中的列表框中获取选定值

Matlab 如何从对话框中的列表框中获取选定值,matlab,listbox,dialog,Matlab,Listbox,Dialog,我使用GUI中的以下代码在用户按下按钮时打开对话框中的列表框: % --- Executes on button press in selectdata. function selectdata_Callback(hObject, eventdata, handles) % hObject handle to selectdata (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB %

我使用GUI中的以下代码在用户按下按钮时打开对话框中的列表框:

% --- Executes on button press in selectdata.
function selectdata_Callback(hObject, eventdata, handles)
% hObject    handle to selectdata (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
X = getappdata(0,'XValue');
Y = getappdata(0,'YValue');
A = [X,Y];
str = num2str(X);
[s,v] = listdlg('PromptString','Select Initial & Final Wavelength:','SelectionMode','multiple','ListString',str);  
selected_values = get(hObject,'value');  
我正在尝试获取列表框中所选的值,但在不断获取这些值的过程中遇到了困难

selected_values =   
                   1  
在comand窗口中,我想这意味着这是真的。

有人知道如何从对话框的列表框中获取所选值吗

所选值的索引将为
s
。该值将是
str{s}
str(s,:)
,具体取决于您是将
str
存储为字符数组还是字符串单元格数组


get(hObject,'value')
这里不是你想要做的-
hObject
指的是你按下的按钮,而不是
listdlg
,所以它是在获取按钮本身的
值。

我认为你需要使用
s
<代码>获取(hObject,'value')
将获取按钮状态的值。我已经尝试了您的建议,但没有成功,可能我没有正确地跟踪您。我尝试了'selected_values=get(str(s,:),'value'),但在MichelelayCockGuiMainWindow>selectdata_回调(第90行)中使用get Invalid handle error得到错误。selected_values=get(str(s,:),'value')否。使用
selected_values=str{s}
,或
selected_values=str(s,:)
listdlg
将所选值的索引直接返回到
s
,您可以使用它直接索引到值集
str
。这里没有把手,也不需要任何东西的属性。我想知道你能帮我进一步吗?我想从我的列表框中选择两个值,它允许我这样做,但它只给我最后选择的值,而不是所有已选择的值。有没有关于如何找到其他人的建议?实际上没关系,我已经改变了我的方法,改为使用两个按钮。谢谢你以前的帮助!