Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-08-25
年龄: 41
帖子: 10
声望力: 17 ![]() |
![]()
我不知道在计算元胞数组的元素所占内存时该怎么计算,例如下面的示例:
>> 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是怎么算出来的呢?知道的朋友帮忙详细解释一下吧,谢谢了! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-08-25
年龄: 41
帖子: 10
声望力: 17 ![]() |
![]()
有大侠知道吗?帮帮忙吧,我真郁闷这个问题了~~要是这个问题解决不了,后面还有好多是计算这个的,看到它解决不掉心里就有个疙瘩解不开!
|
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2007-04-05
帖子: 199
声望力: 28 ![]() ![]() ![]() ![]() |
![]()
64+...不好意思,我算了半天也没算清......
|
![]() |
![]() |
![]() |
#4 |
普通会员
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20 ![]() ![]() |
![]()
问这个干嘛 ?? 好像没什么用呀
下面是 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? |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2007-04-05
帖子: 199
声望力: 28 ![]() ![]() ![]() ![]() |
![]()
谢谢LS,呵呵
|
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2008-08-25
年龄: 41
帖子: 10
声望力: 17 ![]() |
![]()
我understand了。谢谢4楼的pslpsl !!
我刚学习matlab,找了本基础的书在看,里面有很多whos,我都是边看书边验证的,就是到元胞数组这个地方觉得不知道怎么算内存占用了,“每个元胞单元消耗60字节的内存”在书里我还没查到呢~~不过按照这样算,前面的问题都能解决了!^_^心情舒畅很多啦! 感谢感谢!! |
![]() |
![]() |