Borrar filtros
Borrar filtros

creating a structure in for loop

10 visualizaciones (últimos 30 días)
jinang patel
jinang patel el 22 de Nov. de 2019
Editada: Stephen23 el 30 de Abr. de 2020
Hello,
Is it possible to create a structure in a for loop
field={'name1','name2'}
for i=1:2
structure.(field{i})=value
end
Output:
structure.name1=value
structure.name2=value
Thanks
Jinang
  2 comentarios
Ruger28
Ruger28 el 22 de Nov. de 2019
Please, use the code format.
What are you having issues with? This will work just fine.
jinang patel
jinang patel el 22 de Nov. de 2019
hey,
a={'see','why'}
KPI={'L','L2','L3'}
struc.a{1}.KPI{1}=5
Output
"struc =
struct with fields:
a: {[1×1 struct]}"
I would expect
struct.see.L=5

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 22 de Nov. de 2019
Use the syntax shown in the MATLAB documentation:
>> a = {'see','why'};
>> KPI = {'L','L2','L3'};
>> S.(a{1}).(KPI{1}) = 5;
>> S.see.L
ans = 5
Read more:
  2 comentarios
jinang patel
jinang patel el 29 de Abr. de 2020
hello Stephen,
I am trying to assing value to each field name, however this is not possible since assign value to 1st field name limits the structure. Is there a way to assign value to individual fields?
a = {'see','why'};
KPI = {'L','L2','L3'};
S.(a{1})=6;
S.(a{1}).(KPI{1}) = 5;
Output
S.see=6;
S.see.L=5;
Stephen23
Stephen23 el 29 de Abr. de 2020
Editada: Stephen23 el 30 de Abr. de 2020
That is not possible. A field contains one array, i.e. the field can contain either a numeric array or another structure array, but it cannot simultaneously contain both.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by