Counting the number of elements surrounding another element.
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Phillip Smith
am 25 Nov. 2019
Bearbeitet: Andrei Bobrov
am 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 Kommentare
Adam
am 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.
Akzeptierte Antwort
Turlough Hughes
am 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));
Weitere Antworten (1)
Andrei Bobrov
am 25 Nov. 2019
Bearbeitet: Andrei Bobrov
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices 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!