2015-04-25 62 views
0

我想從單元格數組中複製一部分字符串,並將它放入MATLAB中的另一個單元格數組中。從MATLAB中的單元格數組中讀取字符串的一部分

例如,一種結構是這樣

{>eco:b0002 thrA; Bifunctional aspartokinase/homoserine dehydrogenase 1 (EC:1.1.1.3 2.7.2.4); K12524 bifunctional aspartokinase/homoserine dehydrogenase 1 [EC:2.7.2.4 1.1.1.3] (N) atgcgagtgttgaa...}, 

我想粘貼參照字符串轉換成另一個單元陣列的

'>eco:b0002 thrA; Bifunctional aspartokinase/homoserine dehydrogenase 1 (EC:1.1.1.3 2.7.2.4); K12524 bifunctional aspartokinase/homoserine dehydrogenase 1 [EC:2.7.2.4 1.1.1.3] (N)' 

一部分。

在每個單元格中,它以'>'開始並以'(N)'結尾,如您在示例中看到其中一個單元格。

我找不到任何有用的功能開始。

回答

0

您想使用regular expression

嘗試例如:

> str = "> fooooo (N) bar baz" 
> exp = "^>(.*)\\(N\\).*$" 
> [tokens, matches] = regexp(str, exp, 'tokens', 'match') 
> tokens{1}{1} 
ans => foooooo 

(聲明:我試圖在八度以上,這行爲完全一樣的)。

+0

我在Matlab中遇到了錯誤(即使用單引號而不是雙qoutes)。 'tokens'返回爲空 –

+0

不幸的是,我手頭沒有安裝MATLAB來試驗MATLAB的正則表達式方言的更精細的細節,但我發現它不再需要:) –

+0

我沒有看到任何明顯的改正/建議在你的回答中,所以我寫了我的:-) –

1
>> str = '>eco:b0002 thrA; (N) atgcgagtgttgaa...'; 
>> result = regexp(str, '\>.+\(N\)', 'match'); 
>> result = result{1} 
result = 
>eco:b0002 thrA; (N) 
相關問題