MATLAB Answers

0

adding empty numerical fields in structure array

Asked by Octavian on 25 Dec 2014
Latest activity Edited by per isakson
on 25 Dec 2014
Dear All,
I am sure this is trivial for you wizzes. I have a structure A with fields A.field1,A.field2, A.field3, with fields 1 and 2 cell arrays, and field3 numerical double array. How do I add two empty, numerical double, fields named 'field4' and 'field5', to A, that I can fill later separately?
Thank you,
Octavio

  0 Comments

Sign in to comment.

1 Answer

Answer by per isakson
on 25 Dec 2014
Edited by per isakson
on 25 Dec 2014
 Accepted Answer

Yes, that's simple:
A.field4 = [];
A.field5 = [];
&nbsp
In response to comment
>> clear A
>> A.f1=1;
>> A.f2=2;
>> A.field5 = [];
>> A.field4 = [];
>> A
A =
f1: 1
f2: 2
field5: []
field4: []
>>
So far so good.
>> A=[A,A]
A =
1x2 struct array with fields:
f1
f2
field5
field4
f3
>> A.f4 = []
Incorrect number of right hand side elements in dot name assignment.
Missing [] around left hand side is a likely cause.
Ok, I missed that you have a struct array
>> A(1).f4 = []
A =
1x2 struct array with fields:
f1
f2
field5
field4
f3
f4
>> A(1).f4
ans =
[]
>> A(2).f4
ans =
[]
Or better
>> [A.f5] = deal([])
A =
1x2 struct array with fields:
f1
f2
field5
field4
f3
f4
f5

  1 Comment

moved from an answer by per isakson
Dear Per,
Trying A.field4 = [];
I get the error:
Incorrect number of right hand side elements in dot name assignment. Missing [] around left hand side is a likely cause. Please advise

Sign in to comment.