how to preallocate large logical array
    24 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Michael
      
 am 13 Mär. 2012
  
    
    
    
    
    Kommentiert: Image Analyst
      
      
 am 23 Jun. 2018
            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
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
  James Tursa
      
      
 am 13 Mär. 2012
        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:
0 Kommentare
  Ingrid
 am 23 Jun. 2018
        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 Kommentar
  Image Analyst
      
      
 am 23 Jun. 2018
				Or use false() as I suggested:
A = false(50, 50, 50, 50, 50);
It's a bit simpler and more direct.
Siehe auch
Kategorien
				Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



