The working of perms
2 次查看(过去 30 天)
显示 更早的评论
I tried perms('abc'). The doc says it is permutations in reverse lexicographic order. So I expected from the bottom - abc, acb, bac, bca so on. But the result I got was acb, abc, bac, bca ..... Can any one explain what is going on?
0 个评论
回答(2 个)
Thorsten
2015-10-15
Have a look at
perms(1:3)
The result you get with perms('abc') is analogous to this. To have lexicographic order, use
sortrows(perms('abc'))
2 个评论
Jan
2015-10-18
编辑:Jan
2015-10-18
With Matlab R2011b I get:
perms('abc')
cba
cab
bca
bac
abc
acb
As reversed alphabetical order, I'd expect the last two lines to be swapped.
An efficient method to create the permutations in a sorted order: FEX: VChooseKO. But here the order is not "alphabetically" accoring to the contents of the input, but to the order of the values. So for an alphabetical order you'd need:
Str = 'acb';
VChooseKO(sort(Str), length(Str))
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!