function EC = requiv_classes(S) % for all a,b in S, a R b iff aS = bS % brute force [n,n] = size(S); EQ = zeros(n); for i=1:n for j=i+1:n Si = aS(S,i); Sj = aS(S,j); EQ(i,j) = seteq(Si,Sj); end end EQ = EQ+EQ'+eye(n); X = 1:n; EC={}; while ~isempty(X) x = X(1); Ex = find(EQ(x,:)); EC{end+1} = Ex; X = setdiff(X,Ex); end return function Si = aS(S,a) [n,n] = size(S); Si = []; for i=1:n Si(end+1) = S(a,i); end return