MATLAB: Select one element in each row but not the same column

Hi everyone I have matrices 3*3 A= [1 2 3; 4 5 6; 7 8 9] and B=zeros(3,3) I want to choose one element in each row, for example if i choose A(1,1), the matrice of B(1,1) change its value to 1,

Best Answer

A= [1 2 3; 4 5 6; 7 8 9]
ix = logical(eye(size(A))) % one element per row
ix = ix(:,randperm(size(ix,2))) % randomize accross columns
% this ix matrix is now already your B, I think
B = zeros(size(A)) ; % create B
B(ix) = 1 ;