如何在MATLAB中生成订单选择。我需要创建一个单词的所有排列,其中顺序很重要。 因此,如果您想要所有有序选择的2个字母,请使用“时间”一词。 你应该收到
q=
em
ei
et
me
mi
mt
im
ie
it
tm
ti
te
我只能使用这样的代码来完成4个字母的单词。
P = perms(S);
r = size(P);
if length(S) == k
perms(S);
else
q = P(1:2:r,1:k)
但是我需要为所有长度的单词(最多10个)和单词结尾的任何数字生成它。
有什么想法吗?
答案 0 :(得分:2)
word = 'time';
result = perms(word);
result = unique(result(:,1:2),'rows');
在你的例子中,这给出了
>> result
result =
ei
em
et
ie
im
it
me
mi
mt
te
ti
tm
如果您希望明确计算单词中多个相同字母的出现次数:使用索引处理,而不是使用字母:
word = 'timid';
ind = perms(1:length(word));
ind = unique(ind(:,1:2),'rows');
result = word(ind);
例如,使用“胆小”一词,这就是
>> result
result =
ti
tm
ti
td
it
im
ii
id
mt
mi
mi
md
it
ii
im
id
dt
di
dm
di