在MATLAB中从单元格数组中读取字符串的某些部分

时间:2015-04-25 13:00:00

标签: string matlab copy

我想从单元格数组中复制字符串的某些部分,并将其放入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)',正如您在示例中看到的那样。

我无法找到任何有用的功能。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您想使用regular expression

试着举例:

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

(免责声明:我在Octave中尝试了上述内容,应该表现完全相同)。