我在使用函数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维度
我做错了什么,有没有关于如何修复它的建议?
答案 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