MATLAB从字符串生成组合

1 string matlab permutation

我有一个类似"FBECGHD"的字符串,我需要使用MATLAB并生成所有必需的排列?在那里有一个特定的MATLAB函数来完成这个任务,还是我应该定义一个执行这个任务的自定义MATLAB函数?

Ric*_*nte 5

使用perms功能.matlab中的字符串是一个字符列表,因此它将置换它们:

A = 'FBECGHD';
perms(A)
Run Code Online (Sandbox Code Playgroud)

您还可以存储输出(例如P = perms(A)),如果A是N字符串,则P是N!-by-N数组,其中每行对应于一个排列.

如果您对独特的排列感兴趣,可以使用:

unique(perms(A), 'rows')
Run Code Online (Sandbox Code Playgroud)

删除重复项(否则类似'ABB'会给出6个结果,而不是你可能期望的3个结果).