如何在Matlab中对此strsplit函数进行矢量化以使其运行得更快?谢谢
function parts = strsplit(splitstr, str)
splitlen = length(splitstr);
k = strfind(str, splitstr);
parts = cell(length(k)+1, 1);
s = 1;
if isempty(k)
parts{1} = str;
return
end
for i=1:length(k)
parts{i} = str(s : k(i)-1);
s = k(i) + splitlen ;
end
parts{end} = str((k(end) + splitlen) : end);
Run Code Online (Sandbox Code Playgroud)
您可以通过调用TEXTSCAN来替换您的功能.
str = 'testxyztest2xyztest3';
splitStr = 'xyz';
out = textscan(str,'%s','delimiter',splitStr,'multipleDelimsAsOne',1)
out{1}
ans =
'test'
'test2'
'test3'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4072 次 |
| 最近记录: |