Determine adjacent points in a logical matrix
Ältere Kommentare anzeigen
I have a 2-D matrix of logical values, eg
000000000
010000000
000000000
000000000
000000000
000001000
000000000
000000000
100000000
How can I create a similar sized matrix with True in all the locations adjacent to the Trues in the first matrix, eg
111000000
101000000
111000000
000000000
000011100
000010100
000011100
110000000
010000000
If a location is assigned True from two or more adjacent locations, then it should be True.
1 Kommentar
Akzeptierte Antwort
Weitere Antworten (1)
This can also be done succinctly with image processing tools:
% a logical array
A = [0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0];
A = logical(A);
% output is a logical array
B = imdilate(A,ones(3)) & ~A
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!