Boolean Variables in Matlab
显示 更早的评论
Hi, I want to have a large 2D nxn array in which I want to store 0 or 1 at each cell, so basically a bit would do for one cell of a matrix. And the array I want to create have high dimensions so space is a constraint. So is there any thing which can provide bit access so that the whole program may run using decent memory.
Thanks
2 个评论
Walter Roberson
2013-7-1
What operations do you need to perform on the array?
Akashdeep Saluja
2013-7-1
回答(1 个)
Jonathan Sullivan
2013-7-1
编辑:Jonathan Sullivan
2013-7-1
No. MATLAB does not have any native bit sized data types. The best you are going to be able to do is to (without creating your own class) is use logicals, which esentially are bytes (8 bits). Also, do not use cell array if you are concerned about space. Each element in a cell array has a non-neglegable amount of overhead to define the size, shape, and type of the data it stores.
help logical
doc logical
3 个评论
Jonathan Sullivan
2013-7-1
The other thing to look at is a sparse array. Depending on how dense your data set is, a sparse array could help you out considerably.
Akashdeep Saluja
2013-7-1
James Tursa
2013-7-1
编辑:James Tursa
2013-7-1
FYI, doing anything that changes the non-zero locations of a sparse matrix will in all likelihood lead to copying the entire underlying dataset to new memory. I.e., each and every operation you do that changes the non-zero locations will cause an entire dataset copy to take place. This will drag your performance considerably depending on the sizes involved.
类别
在 帮助中心 和 File Exchange 中查找有关 Data Type Identification 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!