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

1 vue (au cours des 30 derniers jours)
Nicholas Kavouris
Nicholas Kavouris le 25 Jan 2023
Modifié(e) : Stephen23 le 25 Jan 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?

Réponses (1)

Stephen23
Stephen23 le 25 Jan 2023
Modifié(e) : Stephen23 le 25 Jan 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:

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by