我想从单元格数组中复制字符串的某些部分,并将其放入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 :(得分: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中尝试了上述内容,应该表现完全相同)。