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

How to create a table with all prefix of a string

我有一个字符串数组:对于每个字符串,我都找到前缀和后缀;我采用后缀、查找前缀和后缀,然后重复此过程,直到字符串的值完成。我想创建一个 table 其中包含所有前缀 link 。示例:

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'

最后,我会得到一个table

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

我已经使用 unique 找到 pfx 中的唯一值,但我不知道如何 link 这个值,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 读数的单元格。

如果您想要 table,您需要用零或 NaN 填充空白条目,您应该使用 cell2table,它应该类似于:

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

谁能test/correct这个,我今天在家上班,只能访问2010版本,没有这个功能