具有重叠搜索结果的MATLABs strep函数

具有重叠搜索结果的MATLABs strep函数,matlab,Matlab,MATLABsstrrep做的事情与我预期的不同: strrep('ababab', 'bab', 'bbb') 我希望字符串被增量替换,因此首先是abbbab,然后是abbbb。但是,MATLAB返回abbbbb(注意末尾的第6个b) MATLAB在引擎盖下做什么?查找索引,然后在每个索引处插入新字符串?完全不同的东西 最重要的是,我如何归档预期结果 准确地说,上面的示例只是减少额外错误源的最小示例。在现实世界中,我想替换整数向量中的序列: strrep([1 0 1 0 1 0], [

MATLABs
strrep
做的事情与我预期的不同:

strrep('ababab', 'bab', 'bbb')
我希望字符串被增量替换,因此首先是
abbbab
,然后是
abbbb
。但是,MATLAB返回
abbbbb
(注意末尾的第6个
b

MATLAB在引擎盖下做什么?查找索引,然后在每个索引处插入新字符串?完全不同的东西

最重要的是,我如何归档预期结果


准确地说,上面的示例只是减少额外错误源的最小示例。在现实世界中,我想替换整数向量中的序列:

strrep([1 0 1 0 1 0],  [0  1 0], [0 0 0])
得到

1 0 0 0 0 0
告诉你你需要知道的。从页面底部的提示部分:

在替换字符串之前,strrep会在origStr中查找oldSubstr的所有实例,如strfind函数。对于重叠模式,strrep执行多个替换。请参见示例部分中的最后一个示例


最后一个示例比较了
strep
regexprep
的行为。我想我会在绳子上做你想做的事。要处理数字,您可以使用
char(vector)
将其转换为字符串,运行
regexprep
,然后使用
double(string)

+1将其转换回数字,以便将我指向
doc strep
-我总是忘了
帮助中有更多内容…
。但是,对于我的字符串示例,
regexprep
返回
abbbab
,整数示例根本不起作用。因此,我只回答了第一个问题。