Como criar e acessar a estrutura que corresponde a determinada lista de variáveis ​​no matlab? [duplicado]

Esta questão já tem uma resposta aqui:

Como eu acesso campos de estrutura dinamicamente? 6 respostas

Eu gostaria de criar uma estrutura para armazenar os dados do banco de dados.

Eu criei uma função

function result = LoadDataFromDB(query, columnNames)

onde os nomes das colunas representam a lista de nomes das colunas, por exemplo {'id', 'year', 'name' ...}

Depois de executar a seguinte consulta

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

Eu gostaria de preencher a estrutura, mas não descobri como acessar dinamicamente os campos na estrutura.

Aqui está o código que deve criar e preencher a estrutura:

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

O principal problema é a linha

result(count).(fieldname) = value;

Para descrever um problema abaixo está a cópia da saída do console:

K>> result(1)

ans = 

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

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

ans =

     []

K>> fieldname

fieldname = 

    'a'

Concluindo a partir da saída acima, o resultado do comando (1). (Fieldname) deve acessar o campo 'a', mas experimentando, retorna o seguinte erro:

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

Alguém sabe como preencher a estrutura dinamicamente?

questionAnswers(1)

yourAnswerToTheQuestion