MATLAB: How to use loops to set certain values in a martix to 0

functionloopmatrixmatrix manipulation

I want to make a function that turns every value but the values in a diagonal shape for a matrice.
function [X] = threeMatrices(matrice)
X = matrice;
X(1,2) = 0;
X(1,3) = 0;
X(2,1) = 0;
X(2,3) = 0;
X(3,1) = 0;
X(3,2) = 0;
end
But this doesn't work with matrices of random sizes. Am I supposed to use a loop or anything?

Best Answer

X(~eye(size(X))) = 0;