Index of first empty cell in array?
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hi, I would like to find the index of the first empty cell in an array consisting of n rows and 4 columns. I need the index, because I would then like to add a certain value to each of the non-empty rows in column 3. I tried the following, but got an error message "Index exceeds matrix dimensions.":
    n=1;
    while ~isempty(array{n,3})
        array_new{n,3}=array{n,3}+deltax;
        n=n+1;
    end
My idea is to find out the index of the first empty cell to feed my while-loop with this index. Thank you!
0 comentarios
Respuestas (2)
  Giorgos Papakonstantinou
      
 el 18 de Dic. de 2014
        If you want to add a certain value to each of the none empty rows in column 3 maybe you try the following:
 array(cellfun(@(x) ~isempty(x), array(:,1)), 3)
0 comentarios
  Frank
 el 18 de Dic. de 2014
        
      Editada: Frank
 el 18 de Dic. de 2014
  
      1 comentario
  Giorgos Papakonstantinou
      
 el 18 de Dic. de 2014
				
      Editada: Giorgos Papakonstantinou
      
 el 18 de Dic. de 2014
  
			When the ~isempty(x) function is called, MATLAB assigns the value you pass in to variable x. In your case every cell entry of your array. (it does not correspond the value that you want to add).
A somewhat simplistic assumption of your array could be:
 array = 
    [2]    [3]    [5]    [3]
     []    [1]    [4]    [1]
    [4]    [4]    [5]    [3]
    [4]    [4]    [4]    [1]
If you want i.e. to add 5 at each of the non empty rows of column 3, try this:
cellfun(@(x) x+5, array(cellfun(@(x) ~isempty(x), array(:,1)), 3), 'uni', 0).
This sentence will find the non-empty rows of the first column of array and it will add the value of 5 to the 3rd column. In the example that I gave you, it will be:
    [7]
    [7]
    [6]
Ver también
Categorías
				Más información sobre Logical 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!