Apply "whos" to fields of a struct to get their sizes?

The command "whos" shows the sizes (in bytes) [of the data objects/variables in the base workspace. Is there a way to get that information for the fields of a struct?

 Accepted Answer

Something like this, perhaps?
a=rand(100); b=1:4;
S.a=a; S.b=b;
Sbytes=whosstruct(S);
whos a b
Name Size Bytes Class Attributes a 100x100 80000 double b 1x4 32 double
Sbytes
Sbytes = struct with fields:
a: 80000 b: 32
function Sbytes=whosstruct(S)
for fld=fieldnames(S)'
val=S.(fld{1});
tmp=whos('val');
Sbytes.(fld{1})=tmp.bytes;
end
end

1 Comment

FM
FM on 27 Apr 2022
Edited: FM on 27 Apr 2022
Yes! Exactly! Thanks!
I put it in my MATLAB folder (where all utility functions reside), referring to it as StrucFldBytes.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019a

Tags

Asked:

FM
on 27 Apr 2022

Edited:

FM
on 27 Apr 2022

Community Treasure Hunt

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

Start Hunting!