Filter löschen
Filter löschen

creating a structure in for loop

10 Ansichten (letzte 30 Tage)
jinang patel
jinang patel am 22 Nov. 2019
Bearbeitet: Stephen23 am 30 Apr. 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 Kommentare
Ruger28
Ruger28 am 22 Nov. 2019
Please, use the code format.
What are you having issues with? This will work just fine.
jinang patel
jinang patel am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Stephen23
Stephen23 am 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 Kommentare
jinang patel
jinang patel am 29 Apr. 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 am 29 Apr. 2020
Bearbeitet: Stephen23 am 30 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements 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