Как создать и получить доступ к структуре, структура которой соответствует заданному списку переменных в matlab? [Дубликат]

This question already has an answer here:

How do I access structure fields dynamically? 6 answers

Я хотел бы создать структуру для хранения данных из базы данных.

Я создал функцию

function result = LoadDataFromDB(query, columnNames)

где имена столбцов представляют список имен столбцов, например, {'id' apos ;, 'apos; year' ',' name 'apos; ...}

После выполнения следующего запроса

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

Я хотел бы заполнить структуру, но не понял, как получить динамический доступ к полям в структуре.

Вот фрагмент кода, который должен создать и заполнить структуру:

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

Основной проблемой является линия

result(count).(fieldname) = value;

Для описания проблемы ниже приведена копия из вывода консоли:

K>> result(1)

ans = 

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

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

ans =

     []

K>> fieldname

fieldname = 

    'a'

Исходя из вышеприведенного вывода, результат команды (1). (Fieldname) должен получить доступ к полю 'a'; но, пробуя это, он возвращает следующую ошибку:

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

Кто-нибудь знает, как динамически заполнить структуру?

Ответы на вопрос(1)

Ваш ответ на вопрос