Getting value from a listbox. Error: Cell contents reference from a non-cell array object.
2 次查看(过去 30 天)
显示 更早的评论
Im trying to get the value selected in a listbox(Temp_listbox) by a callback botton and the listbox contains cells of integers:
string5 = get(handles.Temp_listbox, 'String');%%get cond1
value5 = get(handles.Temp_listbox, 'Value');
cond1 = string5{value5};
But I got the error: Cell contents reference from a non-cell array object.
Any idea about how could be solved? Thanks in advance.
Note: The value of cond1 is used afterwards to find the intersection in an array and plot the data.
2 个评论
David Sanchez
2013-8-23
Are you sure this error message makes reference to these lines of code? They seem all right and should not yield an error.
采纳的回答
Grzegorz Knor
2013-8-23
I suppose that your listbox contains only one string. Compare two codes:
1:
lb = uicontrol('Style','listbox','Position',[10 10 100 100],'String','a');
a = get(lb,'String');
a{get(lb,'Value')}
2:
lb = uicontrol('Style','listbox','Position',[10 10 100 100],'String',{'a','b','c'});
a = get(lb,'String');
a{get(lb,'Value')}
Code 1 produces an error.
3 个评论
Walter Roberson
2013-8-23
Also watch out for the case where the String property is empty.
If you are not absolutely positive that the String property will be cell array, then cellstr(get(TheHandle, 'String'))
At one point in an old Answer, I listed the conditions under which the String property would not be a cell array.
更多回答(1 个)
ES
2013-8-23
Not sure, you must be doing something wrong. It works fine,
if true
eg:
set(handles.listbox1, 'String',{1,2,3,4})% to set set of integers as entries for the list box.
and somewhee else,
string5 = get(handles.listbox1, 'String');%%get cond1 value5 = get(handles.listbox1, 'Value'); cond1 = string5{value5};
output is cond1=1 end
please check..
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!