MATLAB Answers

Why is `struct('name', value)` different with dot notation?

16 views (last 30 days)
Albert Bing
Albert Bing on 13 Dec 2019
Answered: Fangjun Jiang on 13 Dec 2019
a = {{'abc'}};
S1 = struct('f', a};
S2.f = a;
I thought S1.f and S2.f have the same value. But it's not.
S1.f = {'abc'};
S2.f = {{'abc'}};
Why?

Answers (1)

Fangjun Jiang
Fangjun Jiang on 13 Dec 2019
It is in the document. Check this example in the document. One creates a 1x2 struct array. The other creates a single struct.
>> s = struct('type',{'big','little'},'color','red')
s =
1×2 struct array with fields:
type
color
>> s = struct('type',{{'big','little'}},'color','red')
s =
struct with fields:
type: {'big' 'little'}
color: 'red'

Community Treasure Hunt

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

Start Hunting!