Effacer les filtres
Effacer les filtres

creating a structure in for loop

10 vues (au cours des 30 derniers jours)
jinang patel
jinang patel le 22 Nov 2019
Modifié(e) : Stephen23 le 30 Avr 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 commentaires
Ruger28
Ruger28 le 22 Nov 2019
Please, use the code format.
What are you having issues with? This will work just fine.
jinang patel
jinang patel le 22 Nov 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

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 22 Nov 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 commentaires
jinang patel
jinang patel le 29 Avr 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 le 29 Avr 2020
Modifié(e) : Stephen23 le 30 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements 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