String 如何使用字符串的所有前缀创建表

String 如何使用字符串的所有前缀创建表,string,matlab,prefix,String,Matlab,Prefix,我有一个字符串数组:对于每个字符串,我找到前缀和后缀;我获取后缀,查找前缀和后缀,然后重复这个过程,直到字符串的值完成。我想创建一个包含所有前缀链接的表。例如: Pfx Pfx2 '1' '2' ----> 1-->2,3 '1' '3' '2' '' ----> 2-->'',1,3,4 '2' '' '2' '1' '2' '1' '2' '1' '2' '3' '2' '

我有一个字符串数组:对于每个字符串,我找到前缀和后缀;我获取后缀,查找前缀和后缀,然后重复这个过程,直到字符串的值完成。我想创建一个包含所有前缀链接的表。例如:

Pfx Pfx2  
'1' '2'                      ---->  1-->2,3
'1' '3' 
'2' ''                       ---->  2-->'',1,3,4
'2' ''
'2' '1'
'2' '1'
'2' '1'
'2' '3'
'2' '3'
'2' '3'
'2' '3'
'2' '4'
'2' '4'
'3' ''                        ---> 3--> '',1,2
'3' ''
'3' ''
'3' ''
'3' '1'
'3' '2'
'3' '2'
最后,我会得到一张桌子

Prefix  
  '1'       '2'
            '3'
  '2'       '1'
            '2'
            '3'
  '3'       '1'
            '2'

我使用了
unique
来查找pfx中的唯一值,但我不知道如何链接到这些值,pfx2中的值:您能提供帮助吗?

我认为这可能会奏效,您应该能够从
unique
函数中获取索引,其余的只是分组和排序。我以循环的形式给出了我的例子,这样你就可以看到发生了什么

pfx1 = {'1','1','1','1','2','2','2','3','3','3','1'};
pfx2 = {'','6','9','g','','','17','21','a','b','z'};
 [C ia ic] = unique(pfx1);

 for t = 1: size(C,2)
    D{t} =  pfx2(ic == t);
 end

 E = vertcat(C,D);
最后,留下“1”、“2”和“3”列,后面是一个由所有相应pfx2读数组成的单元格

如果你想要一个表,你需要用0或NaN填充空白条目,你应该使用<代码> Cel2Tabe< /Cord>。

E = cell2table(D,'VariableNames',C) %remember you need to pad the blank entries first.

请有人测试/纠正这一点,我今天在家工作,只能访问没有此功能的2010版。

您所有的字符串都是数字吗?或者它们包含字符吗?@GameOfThrows它们都是字符串代码很完美,但我有一个问题:我使用的是matlab R2013a,所以cell2table不存在@cat.cat表是在R2013b中引入的