Callback_listbox1 event to change content of another listbox2

1 次查看(过去 30 天)
I have a listbox1 with different items and when one of these items is selected (e.g project1) this item is used as a field structure name. Therefore the listbox2 is updated with the fieldnames of 'Database.project1', and example is shown below.
function listbox1_Callback(hObject, eventdata, handles)
project1 = get(hObject)%%takes selection item
load('Database.mat');%load Database structure
List = fieldnames(Database.(project1));%take fieldnames from Database.project1 structure
set(hObject.listbox2,'String',List);% update new items for listbox2
But this code is giving the next error:
Argument to dynamic structure reference must evaluate to a valid field name.
Any idea about how can be implemented?
Thanks in advance

采纳的回答

Jan
Jan 2013-8-7
project1 = get(hObject)
seems to be incomplete. Do you mean:
string = get(hObject, 'String');
value = get(hObject, 'Value');
project1 = string{value};
  2 个评论
Manuel
Manuel 2013-8-8
Now it detects perfectly the item selected, thanks a lot.
But when is going to check the fieldnames:
List2 = fieldnames(Database.project1);
I got the next error for this line:
Reference to non-existent field 'project1'.
I think is because is not taken the content of the variable project1 or also could be because project1 is a string and we are making reference to a cell, right? How could I solve that?
Manuel
Manuel 2013-8-9
Problem solve, just need to refer to the content of the variable by using ().
List2 = fieldnames(Database.(project1));

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by