This repository has been archived on 2021-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
NC/mp3/Project_3_Maggioni_Claudio/external/other.m

32 lines
989 B
Mathematica
Raw Permalink Normal View History

2020-10-21 13:21:51 +00:00
function [out1,out2] = other(in1,in2);
% OTHER : Find the other part of a partition, or
% convert a partition to the other representation.
%
% part2 = other(part1,n) : part1 is a list of subscripts in 1:n;
% part2 becomes the complementary list.
% part2 = other(part1,A) : Same, except n is taken as max(size(A)).
% [part2,p] = other(part1,n) : Also returns 0/1 partition vector of length n.
% [part2,p] = other(part1,A) : Same.
% [part1,part2] = other(p) : Converts 0/1 vector to lists of subscripts.
%
% John Gilbert, 1993.
% Copyright (c) 1990-1996 by Xerox Corporation. All rights reserved.
% HELP COPYRIGHT for complete copyright and licensing notice.
% Modified 3 Jul 01 by JRG to fix a bug in the "map" case
if nargin == 1
out1 = find(in1 == 0);
out2 = find(in1 ~= 0);
else
if max(size(in2)) > 1
in2 = max(size(in2));
end;
out2 = full(spones(sparse(1,in1,1,1,in2)));
out1 = find(out2 == 0);
end;