为什么'regexp'的res返回NULL(Matlab)

时间:2015-06-09 14:54:59

标签: regex matlab cell-array

我正在尝试在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中每个元素的顺序吗?谢谢!

1 个答案:

答案 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