How much data does an array take?

My question is pretty much entirely in the title. I am curious about how matlab stores data and specifically how much data an nxn array takes to store. Is each element of the array an individual 8 byte double so the size is 8*n^2 bytes?

 采纳的回答

James Tursa
James Tursa 2023-11-4
编辑:James Tursa 2023-11-4
The data is held in contiguous memory, so yes for a full real double an NxN matrix would take 8*N^2 bytes for the data. Then there is a variable header that contains info such as class, dimensions, data pointers, etc. That takes an additional 132(?) bytes or so per variable. The actual header amount can vary from release to release, and I haven't checked lately what it is currently.

4 个评论

Okay. Just making sure I understand this, if I were to create an array A, where A = randi([0 9], n), I would get a variable that takes up 8*n^2+132 bytes?
Yes, but the header amount doesn't show up under whos even though it is there. E.g.,
n = 10;
A = randi([0 9], n);
whos
Name Size Bytes Class Attributes A 10x10 800 double cmdout 1x33 66 char n 1x1 8 double
Got it thank you. How do I check the header size?
https://www.mathworks.com/matlabcentral/answers/2010767-struct-function-in-matlab
My answer there analyzes struct.
96 bytes to describe a variable. 8 bytes pointer to the data. Another 64 bytes to hold the variable name.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

产品

版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by