Function File: struct_sizeof(s)
: struct_sizeof(s, fd)

Print a report for memory usage of variable s to file descriptor fd or to stdout.

Demonstration 1

The following code

 s1(1).x = 1;
 s1(2).x = 2;
 s1(1).y.z = rand(3, 3);
 s1(2).y.z = rand(3, 100);
 s1(1).y.v = "1234";
 s1(2).y.v = "56478";
 s1(1).y.w = zeros(2^10, 2^10, "int8");
 s1(2).y.w = zeros(2 * 2^10, 2^10, "int8");
 s1(2).y.s2 = s1;
 struct_sizeof(s1);

Produces the following output

sizeof(s1(1).x)=0.000008Mb
  sizeof(s1(1).y.z)=0.000069Mb
  sizeof(s1(1).y.v)=0.000004Mb
  sizeof(s1(1).y.w)=1.000000Mb
 sizeof(s1(1).y)=1.000072Mb
 sizeof(s1(1).y)=1.000072Mb
sizeof(s1(1))=1.000080Mb
 sizeof(s1(2).x)=0.000008Mb
  sizeof(s1(2).y.z)=0.002289Mb
  sizeof(s1(2).y.v)=0.000005Mb
  sizeof(s1(2).y.w)=2.000000Mb
   sizeof(s1(2).y.s2(1).x)=0.000008Mb
    sizeof(s1(2).y.s2(1).y.z)=0.000069Mb
    sizeof(s1(2).y.s2(1).y.v)=0.000004Mb
    sizeof(s1(2).y.s2(1).y.w)=1.000000Mb
   sizeof(s1(2).y.s2(1).y)=1.000072Mb
   sizeof(s1(2).y.s2(1).y)=1.000072Mb
  sizeof(s1(2).y.s2(1))=1.000080Mb
   sizeof(s1(2).y.s2(2).x)=0.000008Mb
    sizeof(s1(2).y.s2(2).y.z)=0.002289Mb
    sizeof(s1(2).y.s2(2).y.v)=0.000005Mb
    sizeof(s1(2).y.s2(2).y.w)=2.000000Mb
   sizeof(s1(2).y.s2(2).y)=2.002294Mb
   sizeof(s1(2).y.s2(2).y)=2.002294Mb
  sizeof(s1(2).y.s2(2))=2.002301Mb
  sizeof(s1(2).y.s2)=3.002381Mb
 sizeof(s1(2).y)=5.004675Mb
 sizeof(s1(2).y)=5.004675Mb
sizeof(s1(2))=5.004683Mb
sizeof(s1)=6.004763Mb

Package: mboct-octave-pkg