Generate all permutation or possibilities
조회 수: 13 (최근 30일)
이전 댓글 표시
I'm still fairly new to MATLAB, but got thrown at with a homework on Huffman coding. It requires to take a word, break it down to each letter, generate the all the possibilities in 3rd, 4th, and 5th order. For instance, in my case, I picked the word 'locate', then strip it down to 'l' 'o' 'c' 'a' 't' 'e'. 3rd order means I'll generate all the possilities/combinations for 3 positions out of 6 letters like 'loc' 'loa' 'lot' etc.. Same concept goes as 4th and 5th order. I had tried nchoosek function, it only give me the combinations (order matter), not all permution or possibilities. I hope it makes sense. Any guidance will be appreciated.
댓글 수: 0
채택된 답변
David Hill
2022년 10월 26일
편집: David Hill
2022년 10월 26일
x='locate';
p=[];order=3;
n=nchoosek(1:length(x),order);
for k=1:size(n,1)
p=[p;perms(n(k,:))];
end
x(p)
댓글 수: 2
Bruno Luong
2022년 10월 27일
편집: Bruno Luong
2022년 10월 27일
Can't find where youu describe the second part in the original question, but here we go
s = 'locate'
p = [0.2 0.2 0.2 0.1 0.1 0.2]; % corresponding probability for each letter of 'locate'
s='locate'
n=3;
c=nchoosek(s,n);
c=reshape(c(:,perms(n:-1:1)')',n,[])'
[~, i] = ismember(c, s);
pc = prod(p(i),2) % this is the probability of the char-row in c
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Denoising and Compression에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!