Matlab:如何优化代码以在字符串中查找后缀

伊利

我有106x1一串弦TrajCompact在每个字符串中,我想查找所有组合的前缀,(0,1,2,3,4)并且仅考虑此前缀之后的后缀。我的前缀是:

00,01,02,03,04,10,11,12,13,14,20,21,22,23,24,30,31,32,33,34,40,41,42,43,44

我尝试使用代码来做到这一点

for k=1:size(TrajCompact,1)
    matches(k) = regexp(TrajCompact(k), '\(?00.*', 'match', 'once');
end

该代码运行,但我必须编写25次:每个前缀一次。我想找到一个紧凑的表达式,所以我以这种方式修改代码:

[digits{1:2}] = ndgrid(0:4);
for k=1:106
    matches(k) = regexp(TrajCompact(k), sprintf('?%d%d.*', digits{1}(k), digits{2}(k)), 'match', 'once');
end

但这不能满足我的要求,这里有什么缺点?

用户名

您应该解决以下问题regexp

matches{k} = regexp(TrajCompact{k}, '\(?[0-4][0-4].*', 'match', 'once');

以后编辑

基于本文评论中的较长讨论,OPs问题的解决方案应与使用该函数的思路相同:

get_matches = @(x,c)cellfun(@(s)regexp(s,sprintf('\\(%s\\)[0-4]+',x),'match'),c,'UniformOutput',false);

例如,对于字符串单元格:

str_cell = {'(23)2' '02(13)(23)1(23)21(23)20(23)1(23)21(23)1(23)(13)(23)1(32)31(32)12321(23)21321(23)132(31)(32)31(32)12321(23)21(23)21(23)20(23)2' '210432342432132342(34)323134(32)43413243424321234321432412343212(34)1341234' '24321(34)(32)3432134(32)3431(34)323432(34)(32)3432(34)3'};

匹配的字符串可以通过以下方式检索:

a23 = get_matches('23', str_cell);
a23 = [a23{:}];

遍历可能的“前缀”是微不足道的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在一组字符串中查找后缀,Python

查找字符串中单词的字符,优化

在字符串中查找代码

如何将Matlab字符串分为两个后缀已知的字符串?

如何从bash中的字符串中删除后缀?

这是在字符串中查找字谜的代码。我该如何进一步优化,因为它给了我 TLE 错误

如何找到字符串中每个后缀的出现次数?

优化以任何顺序查找与子字符串中的字符匹配的字符串?

如何优化此字符串替换代码

此代码如何查找字符串中的重复字符?

用于字符串比较的代码优化

如何使用javascript正则表达式查找包含后缀“xyz”的数字的字符串?

如何在源代码(Xpath)中查找特定字符串并提取后续文本?

如何通过 JSON 代码运行循环以仅查找 javascript 中的特定字符串?

如何使用 .find 工具或类似工具创建在字符串中查找空格的代码

MySQL从已知集中查找或删除字符串后缀

查找也是字符串后缀的最长前缀-Javascript

从查询字符串中查找USSD代码

如何优化替换字符串中的大量条目?

如何使用多行字符串在文件中写入多行?我真的很想优化以下代码

在指定字符串中查找指定子字符串的位置(MATLAB)

用Matlab查找字符串中包含哪个子字符串

优化查找字符串中第N个出现的字符

Python-在字符串中查找子字符串(代码不起作用)

在字符串 scala 中查找子字符串的代码的小问题

如何在字符串中查找无效字符或符号

如何在字符串中查找最大重复字符

如何查找输入字符串中的公共字符数

如何在字符串中查找不连续的字符?