On define a large scale arrays
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi, all, I want to define and store a large scale arrays, like ones(3^N,1000,N) and N can be 15. However, matlab says it is out of memory, because of the large scale.
I wonder is there any way to resolve it? I mean, to fulfill the purpose but satisfy the requirement of matlab? Actually ones(3^N, 1000,1) is still very large scale.
Thanks.
0 Commenti
Risposta accettata
  Image Analyst
      
      
 il 6 Gen 2013
        Does it need to be double? Can it be single, uint8, or logical instead? Will it have any values other than 1 or small integers?
5 Commenti
  Image Analyst
      
      
 il 6 Gen 2013
				Are you sure that you need to whole matrix in memory at one time? Can't you work in "chunks"? Like work on a smaller cube of it at a time? Will you eventually access each and every one of those elements? Or can you use "sparse" matrices? Have you read the Mathworks guidance on this issue: Memory Usage
Più risposte (1)
  Matt J
      
      
 il 6 Gen 2013
        
      Modificato: Matt J
      
      
 il 6 Gen 2013
  
      Are the entries mostly zeros? Could you use the SPARSE command?
If you need to work with n-dimensional sparse arrays, there is this:
3 Commenti
  Matt J
      
      
 il 6 Gen 2013
				If they are mostly ones, you can express the array as
 1 + sparse_array
and rewrite your computations in terms of that.
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices 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!


