2016-01-13 81 views
0

我有一個字符串數組:對於每個字符串,我找到前綴和後綴;我採取後綴,找到前綴和後綴,我重複這個過程,直到字符串的值完成。我想創建一個包含所有前綴鏈接的表格。例如:如何用一個字符串的所有前綴創建一個表

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中的值:你能幫忙嗎?

+0

是你所有的字符串數字?還是他們包含字符? – GameOfThrows

+0

@GameOfThrows他們都是字符串 –

回答

0

我認爲這可能會訣竅,你應該能夠從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讀數的細胞。

如果你想有一個表,你將需要墊空白項零或NaN,你應該使用cell2table它應該是這個樣子:

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

請某人測試/解決這個問題,我今天在家工作,只能訪問2010版本,但沒有這個功能。

+0

代碼是完美的,但我有一個問題:我使用matlab R2013a所以cell2table不存在! –

+1

@ cat.cat表在R2013b中引入 – excaza

相關問題