# v_mintrace

## PURPOSE V_MINTRACE find row permutation to minimize the trace p=(x)

## SYNOPSIS function p=v_mintrace(x)

## DESCRIPTION ```V_MINTRACE find row permutation to minimize the trace p=(x)
Inputs:    x(n,n)  is a square real-valued matrix

Outputs:   p(n,1)  is the row permutation that minimizes the trace
so that trace(x(p,:)) is as small as possible```

## CROSS-REFERENCE INFORMATION This function calls:
• v_permutes V_PERMUTES All N! permutations of 1:N + signatures [P,S]=(N)
This function is called by:

## SOURCE CODE ```0001 function p=v_mintrace(x)
0002 %V_MINTRACE find row permutation to minimize the trace p=(x)
0003 %Inputs:    x(n,n)  is a square real-valued matrix
0004 %
0005 %Outputs:   p(n,1)  is the row permutation that minimizes the trace
0006 %                   so that trace(x(p,:)) is as small as possible
0007
0008 %      Copyright (C) Mike Brookes 2012-2013
0009 %      Version: \$Id: v_mintrace.m 10865 2018-09-21 17:22:45Z dmb \$
0010 %
0011 %   VOICEBOX is a MATLAB toolbox for speech processing.
0013 %
0014 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0015 %   This program is free software; you can redistribute it and/or modify
0017 %   the Free Software Foundation; either version 2 of the License, or
0018 %   (at your option) any later version.
0019 %
0020 %   This program is distributed in the hope that it will be useful,
0021 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0022 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0023 %   GNU General Public License for more details.
0024 %
0025 %   You can obtain a copy of the GNU General Public License from
0026 %   http://www.gnu.org/copyleft/gpl.html or by writing to
0027 %   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0028 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0029 n=size(x,1);    % input x must be square
0030 p=v_permutes(n);  % try all permutations
0031 c=0:n:n^2-1;    % convert olumns to single indexing
0032 [v,i]=min(sum(x(p+c(ones(length(p),1),:)),2));
0033 p=p(i,:)';
0034```