MATLAB: HOW TO MOVE THE DIAGONAL ELEMENTS IN MATRIX (ONE PIXELS) FOR IMAGE PROCESSING

image processingmatrix arraynoise reduction

how to move the array
1 4 6
8 2 3
7 9 5
all elements are move diagonally one pixel for m*n matix

Best Answer

I = [
1 4 6
8 2 3
7 9 5]; % initial array
idx = reshape(1:numel(I),size(I));
for jj = -size(I,1) + 2 : size(I,2) - 2
a = diag(idx,jj);
I(a) = I(circshift(a,1));
end