sizeinbytes.m

来自「地震中常用的一些偏移程序」· M 代码 · 共 24 行

M
24
字号
function bytes=sizeinbytes(thing)

klass=class(thing);

bytes=8*prod(size(thing));%default size

if(strcmp(klass,'char'))
   bytes=2*prod(size(thing));
elseif(strcmp(klass,'int8')|strcmp(klass,'uint8'))
   bytes=prod(size('thing'));
elseif(strcmp(klass,'uint16')|strcmp(klass,'int16'))
   bytes=2*prod(size(thing));
elseif(strcmp(klass,'int32')|strcmp(klass,'uint32'))
   bytes=4*prod(size(thing));
elseif(strcmp(klass,'struct'))
    [l,m]=size(thing);
    names=fieldnames(thing);
    numnames=size(names,1);
    bytes=0;
    for k=1:numnames
        bytes=bytes+sizeinbytes(getfield(thing,char(names(k,:))));
    end
 end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?