how to preallocate large logical array
显示 更早的评论
Hi
I'm trying to pre-allocate a huge logical matrix but I can't work out how to do it without creating a normal matrix then converting it (this intermediate step uses too much memory).
I've been trying A = zeros(50,50,50,50,50, 'uint8'); Which works to create one from 0-255 but I can't find what to write in the quotes to make it logical rather than numeric, and suspect there may be some kind of trick that I'm missing.
Thanks Mike
采纳的回答
更多回答(2 个)
James Tursa
2012-3-13
Another alternative (assumes that all of the elements are filled in downstream):
A = uninit(numRows, numCols, 'logical');
You can find uninit on the FEX here:
Ingrid
2018-6-23
I am not sure in which release it started working but at least in R2018a
A = zeros(50,50,50,50,50, 'logical');
works.
1 个评论
Image Analyst
2018-6-23
Or use false() as I suggested:
A = false(50, 50, 50, 50, 50);
It's a bit simpler and more direct.
类别
在 帮助中心 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!