probability - Displaying only intersections between two sets of permutations in MatLab -
being supplied 2 strings, 'goosegun' , 'goslingnun', find every permutation of pick 3 of each string, display only intersections between two. doing without using intersect(comboperm1,comboperm2,'rows'), want know how use it. guess main problem figuring out how display text.
for variables use in code, here's how they're found.
r = 3; numperms = factorial(r); elements1 = 'goosegun'; n1 = numel(elements1); numcombos1 = factorial(n1) / (factorial(n1-r)*factorial(r)); lettercombos1 = nchoosek(elements1,r); elements2 = 'goslingnun'; n2 = numel(elements2); numcombos2 = factorial(n2) / (factorial(n2-r)*factorial(r)); lettercombos2 = nchoosek(elements2,r); counter = -1; here code works (i think).
% goes through each combination = 1 : numcombos1 comboperm1 = perms(lettercombos1(i,:)); % goes through each permutation of combination j = 1 : numperms k = 1 : numcombos2 comboperm2 = perms(lettercombos2(k,:)); p = 1 : numperms if (comboperm1(j,:) == comboperm2(p,:)) counter = counter + 1; if (mod(counter,numperms) == 0) fprintf('\n\t'); end fprintf('%s ',comboperm2(p,:)); end end end end end here code i'm trying use intersect in.
for = 1 : numcombos1 comboperm1 = perms(lettercombos1(i,:)); j = 1 : numperms k = 1 : numcombos2 comboperm2 = perms(lettercombos2(k,:)); p = 1 : numperms = intersect(comboperm1,comboperm2,'rows'); if (exist(a, 'var') == 0) fprintf('%s ',a); end end end end end hope explained myself because first question on site. help.
Comments
Post a Comment