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

2 Ansichten (letzte 30 Tage)
Nicholas Kavouris
Nicholas Kavouris am 25 Jan. 2023
Bearbeitet: Stephen23 am 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?

Antworten (1)

Stephen23
Stephen23 am 25 Jan. 2023
Bearbeitet: Stephen23 am 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:

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by