Jak stworzyć i uzyskać dostęp do struktury, której struktura odpowiada danej liście zmiennych w matlab? [duplikować]

To pytanie ma już tutaj odpowiedź:

Jak uzyskać dynamiczny dostęp do pól struktury? 6 odpowiedzi

Chciałbym stworzyć strukturę do przechowywania danych z bazy danych.

Stworzyłem funkcję

function result = LoadDataFromDB(query, columnNames)

gdzie nazwy kolumn reprezentują listę nazw kolumn, na przykład {'id', 'year', 'name' ...}

Po wykonaniu następującego zapytania

ps=conn.prepareStatement(sql);
rs=ps.executeQuery();

Chciałbym wypełnić strukturę, ale nie zorientowałem się, jak dynamicznie uzyskać dostęp do pól w strukturze.

Oto fragment kodu, który powinien tworzyć i wypełniać strukturę:

varnamelist = genvarname(columnNames);

result = cell2struct(cell(size(varnamelist(:))), varnamelist(:));
while rs.next()
    count=count+1;
    for i = 1 : length(columnNames)
        fieldname = columnNames(i);
        value = char(rs.getString(i));
          %result(count).columnNames(i)=char(rs.getString(i));
          result(count).(fieldname) = value;
    end
end

Głównym problemem jest linia

result(count).(fieldname) = value;

Opisanie problemu poniżej to kopia z wyjścia konsoli:

K>> result(1)

ans = 

    a: []
    b: []
    c: []

K>> result(1).('a')

ans =

     []

K>> fieldname

fieldname = 

    'a'

Na podstawie powyższego wyniku polecenie wynik (1). (Nazwa pola) powinno uzyskać dostęp do pola „a”, ale wypróbowanie go, zwraca następujący błąd:

K>> result(1).(fieldname)
??? Argument to dynamic structure reference must evaluate to a valid field name.

Czy ktoś wie jak wypełnić strukturę dinamicznie?