在strsplit

时间:2016-12-19 23:46:20

标签: arrays matlab strsplit

我在使用函数strsplit无法执行此操作时尝试存储最长的结果字符串

例如:我有输入字符串,如 “R.DQDEGNFRRFPTNAVSMSADENSPFDLSNEDGAVYQRD.L'or 'L.TSNKDEEQRELLKAISNLLD'

我只需要在点之间存储字符串(。) 如果没有点,那么我想要整个字符串。 每个字符串可能有零个,一个或两个点。

我正在使用的部分代码:

for i=1:700
    x=regexprep(txt(i,1), '\([^\(\)]*\)','');

    y=(strsplit(char(x),'.'));

    for j=1:3

        yValues(1,j)=y{1,j};
    end
end

但字符串yValues不存储y的值,而是显示以下错误:

  

分配比非单身下标更多的非单身rhs维度

我做错了什么,有没有关于如何修复它的建议?

1 个答案:

答案 0 :(得分:2)

问题是y是一个单元格数组,每个元素都包含一个完整的字符串,因此无法将其分配给普通数组{{1}中的单个元素}。

您需要yvalues(1,j)作为单元格数组,然后您可以将其分配给它。

yvalues

或更简单

yValues{j} = y{j};

或者,如果你只想要% Outside of your loop yValues = cell(1,3); % Then inside of your loop yValues(j) = y(j); 的最长输出,你可以做这样的事情。

strsplit