【发布时间】:2015-08-16 18:22:53
【问题描述】:
我有一个字符数组列表,并希望根据数字向量 chr 中保存的索引来计算子字符串出现的次数:
list =
CCNNCCCNNNCNNCN
chr =
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
通常,我正在搜索相邻的字符串对,即“NN”并使用此方法:
Count(:,1) = accumarray(chr(intersect([strfind(list,'CC')],find(~diff(chr)))),1);
使用 ~diff(chr) 确保模式匹配不会跨越索引边界。
但是,现在我想匹配单个字母字符串,即 'N' - 我该如何做到这一点?上述方法意味着每个索引中的最后一个字母被遗漏并且不被计算在内。
上述示例的预期结果将是一个两列矩阵,详细说明每个索引中“C”和“N”的数量:
C N
2 2
5 6
即索引“1”内有 2C 和 2N(存储在 chr 中) - 然后计数从 0 重新开始,下一个“2” - 其中有 5C 和 6N。
【问题讨论】:
标签: matlab