如何在Matlab中将regexp应用于单元格数组?

时间:2012-08-22 13:27:17

标签: regex matlab cell-array

我正在使用单元格3x2的单元格数组 res ,每个单元格都包含一个字符串。我想对每个单元格应用 regexp ,它看起来应该是这样的:

fin = cellfun(@regexp(res, '\.', 'split'),res,'UniformOutput',false)
然而,它没有完成这项工作。任何人都知道它如何正确组合?

2 个答案:

答案 0 :(得分:4)

你是在正确的轨道上,但你的匿名函数的语法是错误的。试试这个:

fin = cellfun(@(x)regexp(x, '\.', 'split'), res, 'UniformOutput', false)

答案 1 :(得分:0)

如果你有一个单元格“res”,它由数字和字符串组成,并且想在“res”的每个字符中用“b”替换“a”,那么你应该使用以下内容:

idx_isNumeric = @(x) any(isnumeric(x));                     
idx_isNumeric2 = cellfun(idx_isNumeric, res);  
res( ~idx_isNumeric2 ) = regexprep( res( ~idx_isNumeric2 ), 'a', 'b');  

希望它有所帮助;)