Azzera filtri
Azzera filtri

Callback_listbox1 event to change content of another listbox2

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Jan
Jan il 7 Ago 2013
project1 = get(hObject)
seems to be incomplete. Do you mean:
string = get(hObject, 'String');
value = get(hObject, 'Value');
project1 = string{value};
  2 Commenti
Manuel
Manuel il 8 Ago 2013
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 il 9 Ago 2013
Problem solve, just need to refer to the content of the variable by using ().
List2 = fieldnames(Database.(project1));

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by