I have a structure within a structure (a nested structure), and am trying to add a field to that structure, what should I write?

3 ビュー (過去 30 日間)
s.Field.(FieldName)=zeros(1,1);
Doesn't work...

回答 (1 件)

Fabian Schadt
Fabian Schadt 2017 年 3 月 23 日
編集済み: Stephen23 2017 年 3 月 23 日
Hi Guy Nir,
actually there should be no problem.
s.Field.FieldName = zeros(1,1);
works ;-)
However, if you state your nested struct with brackets ->
s.Field.(FieldName),
then you access with (FieldName) a variable in your workspace. If this does not exist, you receive an error.
If brackets, then it would be like this:
FieldName = [];
s.Field.(FieldName) = zeros(1,1);
Hope I could help!
  5 件のコメント
James Tursa
James Tursa 2017 年 3 月 23 日
編集済み: James Tursa 2017 年 3 月 23 日
Works for me:
>> clear all
>> FieldName='valid'
FieldName =
valid
>> s.Field.(FieldName) = zeros(1,3)
s =
Field: [1x1 struct]
>> s.Field.valid
ans =
0 0 0
You should double check what the variable s really is. Are you sure it isn't maybe a cell array that contains structures, or something like that?
Guy Nir
Guy Nir 2017 年 3 月 23 日
Thanks. It seems that because I had a 2X1 structure within a structure, it was a bit more complicated. but i got it done thanks to all of you!
fluidicsSeq{1,1}.ClustData(1).(FieldName)=zeros(1,3)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by