Borrar filtros
Borrar filtros

How to perform function whos output is a struct in a loop?

1 visualización (últimos 30 días)
Nicholas Kavouris
Nicholas Kavouris el 25 de En. de 2023
Editada: Stephen23 el 25 de En. de 2023
I am trying to loop a data extraction program over multiple files in a string array, and place the results in a struct, but i continue getting the error
Subscripted assignment between dissimilar structures
GPdata=struct();
for k=length(files):-1:1
[GPdata(k)]=extractDataV2(files(k));
end
how can i get the output of the function to populate subsequent rows of the GPdata struct?

Respuestas (1)

Stephen23
Stephen23 el 25 de En. de 2023
Editada: Stephen23 el 25 de En. de 2023
Assuming identical fieldnames, the simplest and most robust solution is to concatenate the structure after the loop:
N = numel(files);
C = cell(1,N);
for k = 1:N
C{k} = extractDataV2(files(k));
end
S = [C{:}]
If you really want to use complex, obfuscated approaches involving indexing into a structure array, see this thread:

Categorías

Más información sobre Structures en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by