function K =commute(m,n) Im=speye(m); In=speye(n); K=sparse(m*n,m*n); if m <= n; for i=1:m; K=K+kron(kron(Im(:,i)',In),Im(:,i)); end; else for i=1:n; K=K+kron(kron(In(:,i),Im),In(:,i)'); end; end;