A=[-1,-1,0,0;-1,1,0,0;1,-1,0,0;1,1,0,0]; # eigs with # # if (rows (a) < 4) # instead of if (rows (a) < 9) # call_eig = true; # endif [V,s] = eigs([sparse(4,4),A;A',sparse(4,4)],4,4); # I see that V(1:4,3)'*V(1:4,4) is not zero u = [sqrt(2)*V(1:4,1:2),orth(V(1:4,3:4))]; v = [sqrt(2)*V(5:8,1:2),orth(V(5:8,3:4))]; u'*u # is orthogonal v'*v # is orthogonal u*s*v # is A