Home > matpower5.0 > fairmax.m

fairmax

PURPOSE ^

FAIRMAX Same as built-in MAX, except breaks ties randomly.

SYNOPSIS ^

function [val, idx] = fairmax(x)

DESCRIPTION ^

FAIRMAX    Same as built-in MAX, except breaks ties randomly.
   [VAL, IDX] = FAIRMAX(X) takes a vector as an argument and returns
   the same output as the built-in function MAX with two output
   parameters, except that where the maximum value occurs at more
   than one position in the  vector, the index is chosen randomly
   from these positions as opposed to just choosing the first occurance.

   See also MAX.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [val, idx] = fairmax(x)
0002 %FAIRMAX    Same as built-in MAX, except breaks ties randomly.
0003 %   [VAL, IDX] = FAIRMAX(X) takes a vector as an argument and returns
0004 %   the same output as the built-in function MAX with two output
0005 %   parameters, except that where the maximum value occurs at more
0006 %   than one position in the  vector, the index is chosen randomly
0007 %   from these positions as opposed to just choosing the first occurance.
0008 %
0009 %   See also MAX.
0010 
0011 %   MATPOWER
0012 %   $Id: fairmax.m 1635 2010-04-26 19:45:26Z ray $
0013 %   by Ray Zimmerman, PSERC Cornell
0014 %   Copyright (c) 1996-2010 by Power System Engineering Research Center (PSERC)
0015 %
0016 %   This file is part of MATPOWER.
0017 %   See http://www.pserc.cornell.edu/matpower/ for more info.
0018 %
0019 %   MATPOWER is free software: you can redistribute it and/or modify
0020 %   it under the terms of the GNU General Public License as published
0021 %   by the Free Software Foundation, either version 3 of the License,
0022 %   or (at your option) any later version.
0023 %
0024 %   MATPOWER is distributed in the hope that it will be useful,
0025 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0026 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0027 %   GNU General Public License for more details.
0028 %
0029 %   You should have received a copy of the GNU General Public License
0030 %   along with MATPOWER. If not, see <http://www.gnu.org/licenses/>.
0031 %
0032 %   Additional permission under GNU GPL version 3 section 7
0033 %
0034 %   If you modify MATPOWER, or any covered work, to interface with
0035 %   other modules (such as MATLAB code and MEX-files) available in a
0036 %   MATLAB(R) or comparable environment containing parts covered
0037 %   under other licensing terms, the licensors of MATPOWER grant
0038 %   you additional permission to convey the resulting work.
0039 
0040 val = max(x);               %% find max value
0041 i   = find(x == val);       %% find all positions where this occurs
0042 n   = length(i);            %% number of occurences
0043 idx = i( fix(n*rand)+1 );   %% select index randomly among occurances

Generated on Mon 26-Jan-2015 15:21:31 by m2html © 2005