what is the difference between using the zeros array or nan array ?!
    15 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Ano
      
 el 20 de Mayo de 2017
  
    
    
    
    
    Comentada: John D'Errico
      
      
 el 20 de Mayo de 2017
            Hello! I would like to know what is the difference between initializing an array using the zeros array and nan array in matlab? is there any advantages of using one of them A or B? Thank you!
A= zeros (100,100);
B = nan (100,100);
0 comentarios
Respuesta aceptada
  John D'Errico
      
      
 el 20 de Mayo de 2017
        
      Editada: John D'Errico
      
      
 el 20 de Mayo de 2017
  
      No difference in theory. I frequently use NaNs because that way, if I am doing something, and then want to verify I have filled the entire array, NaNs would be easier to spot.
zeros seems to be faster, and consistently so. This is certainly due to the way they are implemented internally.
timeit(@() zeros(1000))
ans =
    0.0030123
timeit(@() nan(1000))
ans =
    0.0044756
So, is the time nearly inconsequential? Yes.
Is the difference significant? Yes. NaN takes roughly 50% more time than zeros.
Do I care, unless I have a vast number of calls to either of these operations? NO. And since I try NEVER to write code that has a vast number of calls to any such operator, there is little to worry about for me.
2 comentarios
  Steven Lord
    
      
 el 20 de Mayo de 2017
				From a non-technical standpoint, if zero is a meaningful value for the quantity you want to store in the array, preallocating with zeros means you can't distinguish between an element that has been filled with 0 and an element that hasn't been filled. For example, consider an array that will store temperatures. In that case, you may want to preallocate using NaN or Inf instead.
  John D'Errico
      
      
 el 20 de Mayo de 2017
				What I was trying to say, but Steve said it better. NaN (or inf) is a good way to flag if you did something wrong, especially if zero is possible.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


