¿Cómo crear y acceder a la estructura que estructura corresponde a la lista de variables dada en matlab? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo accedo dinámicamente a los campos de la estructura? 6 respuestas

Me gustaría crear una estructura para almacenar los datos de la base de datos.

Creé una función

function result = LoadDataFromDB(query, columnNames)

donde los nombres de columna representan la lista de nombres de columna, por ejemplo, {'id', 'year', 'name' ...}

Después de ejecutar la siguiente consulta

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

Me gustaría llenar la estructura, pero no he descubierto cómo acceder dinámicamente a los campos en la estructura.

Aquí está la pieza de código que debe crear y llenar la estructura:

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

El principal problema es la línea.

result(count).(fieldname) = value;

Para describir un problema a continuación es la copia de la salida de la consola:

K>> result(1)

ans = 

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

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

ans =

     []

K>> fieldname

fieldname = 

    'a'

Concluyendo de la salida anterior, el resultado del comando (1). (Nombre de campo) debe acceder al campo 'a', pero al probarlo, devuelve el siguiente error:

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

¿Alguien sabe como rellenar la estructura dinamicamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta