Replacing the numbers in a matrix
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a matrix of numbers (22 x 22). Some of the numbers in the cells are zero. If the cell contains a zero, I want to replace in the numbers in the cells directly above, below, to the right and left also with a zero.
0 Kommentare
Akzeptierte Antwort
Jan
am 11 Apr. 2017
Bearbeitet: Jan
am 11 Apr. 2017
Do you mean all 8 surrounding elements?
x = randi([0,5], 22, 22); % Example data
Z = conv2(double(x == 0), ones(3, 3), 'same');
x(Z ~= 0) = 0;
If you mean the 4 neighbors without the diagonals:
Z = conv2(double(x == 0), [0,1,0; 1,0,1; 0,1,0], 'same');
x(Z ~= 0) = 0;
Weitere Antworten (1)
Andrei Bobrov
am 11 Apr. 2017
Bearbeitet: Andrei Bobrov
am 11 Apr. 2017
Let A - your array [22 x 22]
A(bwdist(A==0) <= 1) = 0
0 Kommentare
Siehe auch
Kategorien
Mehr zu Operating on Diagonal 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!