why my empty cell array taking 104 bytes instead of 112 bytes..?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
OMKARAM RAJESHWARA RAJU
il 6 Set 2020
Modificato: Walter Roberson
il 6 Set 2020
Hello,
it is mentioned in the document that,
an empty cell array will take
30 bytes for 32 bit systems
& 112 bytes for 64 bit systems.
i got confused why my 64 bit system is taking 104 bytes of memory for an empty cell array..
can someone please explain me..?
Thanks in advance ..!
2 Commenti
Risposta accettata
Bruno Luong
il 6 Set 2020
Modificato: Bruno Luong
il 6 Set 2020
A = {[]}
is NOT an empty cell, it's 1 x 1 cell contains an empty array.
An empty cell is
A = {}
3 Commenti
Bruno Luong
il 6 Set 2020
Modificato: Bruno Luong
il 6 Set 2020
Sorry, I can't answer you.
I don't know what whos command exactly display for BYTES or the internal mechanism when CELL or {} command is invoked.
Bruno Luong
il 6 Set 2020
Modificato: Bruno Luong
il 6 Set 2020
I read the doc and test on 2 MATLAB versions 2018b and 2020a. The 112 bytes of header size seems to be applicable to R2018b and 104 bytes for 2020a
R2018b
>> A={[]}
A =
1×1 cell array
{0×0 double}
>> whos
Name Size Bytes Class Attributes
A 1x1 112 cell
And R2020a
>> A={[]}
A =
1×1 cell array
{0×0 double}
>> whos
Name Size Bytes Class Attributes
A 1x1 104 cell
Più risposte (1)
Image Analyst
il 6 Set 2020
Cell arrays take a huge amount of overhead. Don't use them unless you have to, which means you'll have different kinds of variables in each cell. Otherwise use a double array if they're all numbers, or a table if it's a mixture of variable classes (e.g. strings and numbers) but each column will be all of the same class.
See the very first item on the FAQ: What is a cell array?
0 Commenti
Vedere anche
Categorie
Scopri di più su Data Type Identification in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!