Code covered by the BSD License  

Highlights from
QUBIT4MATLAB V4.0

from QUBIT4MATLAB V4.0 by Geza Toth
MATLAB package for quantum information science and quantum mechanics.

mm=swapqudits(m,k,l,varargin)
% swapqudits    Swap two qudits of a qudit register
%   swapqudits(rho,k,l) swaps qudits k and l of the quantum state
%   rho. A state vector can also be given instead of
%   the density matrix rho. If the system is not a qubit
%   register, but a register of higher dimensional qudits
%   then we can use the form swapqudits(rho,k,l,d)
%   where d gives the dimension. If the density matrix given is sparse, 
%   then swapqudits will also produce a sparse matrix.

function mm=swapqudits(m,k,l,varargin)

if isempty(varargin)
    d=2;
elseif length(varargin)==1
    d=varargin{1};
else
    error('Wrong number of input arguments.');
end %if

N=floor(log2(max(size(m)))/log2(d)+0.5);
pattern=N:-1:1;
pattern(N-k+1)=l;
pattern(N-l+1)=k;
mm=reorder(m,pattern,d);


Contact us at files@mathworks.com