question about the 'stuct' of matlab?
2 ビュー (過去 30 日間)
古いコメントを表示
Why the second one gives rise to empty struct?
s.a=1; s.b=2; s.c={}
s =
a: 1
b: 2
c: {}
s = struct('a',1,'b',2,'c',{})
s =
0x0 struct array with fields:
a
b
c
0 件のコメント
採用された回答
per isakson
2014 年 11 月 24 日
編集済み: per isakson
2014 年 11 月 24 日
That's the way the function struct is designed to work. See struct, Create structure array "[...]If value is an empty cell array {}, then s is an empty (0-by-0) structure."
4 件のコメント
Guillaume
2014 年 11 月 24 日
編集済み: Guillaume
2014 年 11 月 24 日
If you do want to assign an empty cell array to a field of a structure using the struct function, you need to wrap that empty cell array into a cell array:
s = struct('a', 1, 'b', 2, 'c', {{}})
s =
a: 1
b: 2
c: {}
For that matter, even if the cell array is not empty you still need to wrap it to assign it to a scalar structure, otherwise the elements of the cell arrays are just distributed over an array of structs.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!