我正在尝试在Matlab中使用函数regexp。第一个代码如下:
data={'ABCD' 'BCDE' 'ACBE' 'ADEBC '} % 3 AB, 2 BE, 2 BC
%res = regexp( data, 'A.*.*B') % OK code
以上代码用于计算数据单元阵列中的A。*。B顺序。 但是,当我尝试使用定义如下的celldata进行测试时:
celldata = {'AB'; 'BE'; 'BC'}
for kk=1:length(celldata)
res = regexp( data,'celldata{kk}(1).*.*celldata{kk}(2)')
end
'res'值返回NULL。请问这里的错误在哪里。有人可以帮我计算数据中celldata中每个元素的顺序吗?谢谢!
答案 0 :(得分:1)
使用字符串串联
res = regexp( data, [celldata{kk}(1) '.*.*' celldata{kk}(2)])
找出发生的数量
for kk=1:length(celldata)
res = cellfun(@(x) length(x), regexp( data,[celldata{kk}(1) '.*' celldata{kk}(2)]))
end