How to display structs only in a struct with fields?

2 ビュー (過去 30 日間)
Emily
Emily 2022 年 4 月 20 日
コメント済み: Emily 2022 年 4 月 20 日
I'm trying to display only the 1x1 struct portions and hide the character portions in a struct with fields.
aTable=struct2table(S);
disp(aTable);
  2 件のコメント
Rik
Rik 2022 年 4 月 20 日
Do you have an example of what kind of output you want? Can you provide a small example struct with the intended output?
Emily
Emily 2022 年 4 月 20 日
I want to show the output as the fieldnames with struct only and hide the chars.
So only show 'b' and 'c'.
s =
struct with fields:
a: [2×4 char]
b: [1×1 struct]
c: [1×1 struct]
d: [2×4 char]

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

採用された回答

Matt J
Matt J 2022 年 4 月 20 日
編集済み: Matt J 2022 年 4 月 20 日
t='11'; s.q=1;
S=struct('a',t,'b',s,'c',s,'d',t)
S = struct with fields:
a: '11' b: [1×1 struct] c: [1×1 struct] d: '11'
aTable=struct2table(S);
disp( table2struct(aTable(:,vartype('struct'))) )
b: [1×1 struct] c: [1×1 struct]
  1 件のコメント
Emily
Emily 2022 年 4 月 20 日
The last line solved it!
Thanks for the help.

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

その他の回答 (1 件)

Matt J
Matt J 2022 年 4 月 20 日
編集済み: Matt J 2022 年 4 月 20 日
t='11'; s.q=1;
S=struct('a',t,'b',s,'c',s,'d',[s,s])
S = struct with fields:
a: '11' b: [1×1 struct] c: [1×1 struct] d: [1×2 struct]
p=reshape( namedargs2cell(S) , 2,[]);
keep=structfun(@(f)isstruct(f) & isscalar(f), S);
s=struct(p{:,keep});
disp(s)
b: [1×1 struct] c: [1×1 struct]

カテゴリ

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