Is there another way to store, within each iteration, vectors of varying magnitude, and reference them in the output of a function as a structure?
Can I define a structure iteratively?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ricardo Gomez Uribe
el 22 de Nov. de 2017
Comentada: Ricardo Gomez Uribe
el 22 de Nov. de 2017
I am hoping to redefine a structure within each for-loop. Say, given a 1000-by-4 real vector Xs and a 1000-by-4 logical B,
value_i={[]};
fields_global={[]};
values_global={[]};
for i=1:30
for j=1:4
A = Xs(:,j);
C = A.*(B(:,j)*1);
E=C(find(C));
value_i={value_i,E};
end
Structure_i=struct('field_i',value);
Structure_global=struct(fields_global,values_global,'field_i',value_i)
fields_global={fields_global,'field_i'}
values_global={values_global,value_i}
value={[]}
end
MATLAB doesn't seem to appreciate my approach. Is this at all feasable? Is there another way to store
Respuestas (1)
Guillaume
el 22 de Nov. de 2017
It's not very clear what you're trying to achieve. As it is you're always creating the same field always called 'field_i'. You can't have multiple fields with the same name.
The simplest way to store several vectors of different length (if that's what you mean by magnitude) is to use a cell array.
results = cell(1, 30);
for i = 1:30
values = ...
results{i} = values;
end
You could use a structure with numbered fields instead but that would be more complicated for no benefit at all.
2 comentarios
Ver también
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!