Borrar filtros
Borrar filtros

How do I add elements to a structure in a loop?

57 visualizaciones (últimos 30 días)
Kim
Kim el 20 de Sept. de 2018
Respondida: Stephen23 el 20 de Sept. de 2018
I'm trying to fit a number of polynomials to x/y, and want to save the results of each fit so I can evaluate which is best. So...
for norder = 2:2:highestOrder [p,S,mu] = polyfit(x,y,norder); end
I'd like a structure 'poly' to be able to store 'p', 'S', and 'mu' for each iteration of the for loop. Ideally the structure would look like poly.p2, to poly.phighestOrder, poly.S2...
How would I do that?

Respuesta aceptada

Stephen23
Stephen23 el 20 de Sept. de 2018
Do not use a cell array of scalar structures, just use one non-scalar structure:
S = struct([]);
for k = 1:15
[S(k).a,S(k).b,S(k).c] = polyfit(randi(20,1,100),randi(10,1,100),2);
end
Giving all iterations in one structure.

Más respuestas (1)

ANKUR KUMAR
ANKUR KUMAR el 20 de Sept. de 2018
Just simple store separated with dot. Example
for ii=1:15
[a,b,c]=polyfit(randi(20,1,100),randi(10,1,100),2)
poly{ii}.a=a;
poly{ii}.b=c;
poly{ii}.c=c;
end
  1 comentario
Kim
Kim el 20 de Sept. de 2018
When I try that I get "Cell contents assignment to a non-cell array object." And for each iteration it just overwrites the previous.

Iniciar sesión para comentar.

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