为什么';regexp';返回空值(Matlab)

为什么';regexp';返回空值(Matlab),regex,matlab,cell-array,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的定义如下: celldata = {'AB'; '

我试图在Matlab中使用函数regexp。第一个代码正常,如下所示:

          data={'ABCD' 'BCDE' 'ACBE' 'ADEBC '} % 3 AB, 2 BE, 2 BC

          %res = regexp( data, 'A.*.*B') % OK code
上面的代码用于计算数据单元数组中的A.*.B顺序。 但是,当我尝试使用celldata进行测试时,celldata的定义如下:

            celldata = {'AB'; 'BE'; 'BC'}

            for kk=1:length(celldata)

                 res = regexp( data,'celldata{kk}(1).*.*celldata{kk}(2)')

            end 

“res”值返回NULL。请问这里的错误在哪里。有人能帮我计算一下celldata中每个元素在data中的顺序吗?谢谢

使用字符串的串联

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 

本例中的预期结果是什么?@LuisMendo:本例中的预期结果是:AB顺序计数2,be顺序计数2,BC顺序计数2。他们是celldata的成员。我想在“数据”地窖中检查每一个。对不起,BC数到3。谢谢罗伯斯泰特勒!本例中的预期结果为:AB订单计数2,be订单计数2,BC订单计数2。他们是celldata的成员。我想在“数据”框中检查每一个。您的修改很好,第一次返回'res'。然而,在第二个和第三个元素的计数中,如下所示:res=[1][[1][1]%OK,但是,下面的两个返回看起来很奇怪。res=[][1][3][res=[2][1][4]我希望它们应该是:res=[1][[1][1];res=[[1][1][];res=[1][1][[1]