Counting the number of elements surrounding another element.
    9 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Phillip Smith
 le 25 Nov 2019
  
    
    
    
    
    Modifié(e) : Andrei Bobrov
      
      
 le 27 Nov 2019
            Hello,
I've created a matrix and have I randomly set one of these matrix elements equal to 1. Now I want to count how many elements are neighbouring it, I am taking into account diagonal neighbours too i.e. a fully surrounded element will have 8 neighbours etc.
Many thanks,
Phill
2 commentaires
  Adam
      
      
 le 25 Nov 2019
				Just determine if it is on an edge (5 neighbours) or a corner (3 neighbours) and if not then as you say, it has 8 neighbours.  No need to count them.
Réponse acceptée
  Turlough Hughes
      
 le 25 Nov 2019
        If your matrix is called A. You could find the number of 0's surrounding an element at A(m,n) as follows:
D=padarray(A,[1 1],1,'both');
numberzeros=nnz(~D(m:m+2,n:n+2));
Plus de réponses (1)
  Andrei Bobrov
      
      
 le 25 Nov 2019
        
      Modifié(e) : Andrei Bobrov
      
      
 le 27 Nov 2019
  
      Let x - your array with ones and zeros:
x = double(rand(10) > .45);
out = conv2(double(~x),[1,1,1;1,0,1;1,1,1],'same');
2 commentaires
Voir également
Catégories
				En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



