MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]有关元胞数组所占内存的计算问题 (https://www.labfans.com/bbs/showthread.php?t=4210)

小脉 2008-08-25 13:18

[求助]有关元胞数组所占内存的计算问题
 
我不知道在计算元胞数组的元素所占内存时该怎么计算,例如下面的示例:
>> A={zeros(2,2,2),'Hello';17.35,1:10}
A =
[2x2x2 double] 'Hello'
[ 17.3500] [1x10 double]
>> B=A(1,2)
B =
'Hello'
>> class(B)
ans =
cell
>> whos
Name Size Bytes Class
A 2x2 402 cell array
B 1x1 70 cell array
ans 1x4 8 char array
Grand total is 38 elements using 480 bytes

问题是:这个A的内存字节数402是怎么算出来的呢?知道的朋友帮忙详细解释一下吧,谢谢了!

小脉 2008-08-26 09:13

回复: [求助]有关元胞数组所占内存的计算问题
 
有大侠知道吗?帮帮忙吧,我真郁闷这个问题了~~要是这个问题解决不了,后面还有好多是计算这个的,看到它解决不掉心里就有个疙瘩解不开!

yesman 2008-08-26 10:07

回复: [求助]有关元胞数组所占内存的计算问题
 
64+...不好意思,我算了半天也没算清......

pslpsl 2008-08-26 11:52

回复: [求助]有关元胞数组所占内存的计算问题
 
问这个干嘛 ?? 好像没什么用呀

下面是 A={zeros(2,2,2),'Hello';17.35,1:10}所占内存的计算

每个元胞单元消耗60字节的内存,共4*60=240B
每个double数据占8字节,故zeros(2,2,2)消耗2*2*2*8=64B
每个字符数据占2字节,'Hello'占5*2=10B
17.35(double)占8B
1:10(double*10)占80B

so,240+64+10+8+80=402

understand?

yesman 2008-08-26 12:41

回复: [求助]有关元胞数组所占内存的计算问题
 
谢谢LS,呵呵

小脉 2008-08-26 12:56

回复: [求助]有关元胞数组所占内存的计算问题
 
我understand了。谢谢4楼的pslpsl !!
我刚学习matlab,找了本基础的书在看,里面有很多whos,我都是边看书边验证的,就是到元胞数组这个地方觉得不知道怎么算内存占用了,“每个元胞单元消耗60字节的内存”在书里我还没查到呢~~不过按照这样算,前面的问题都能解决了!^_^心情舒畅很多啦!
感谢感谢!!


所有时间均为北京时间。现在的时间是 05:15

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.