【问题标题】:Regex for char array MATLAB字符数组 MATLAB 的正则表达式
【发布时间】:2016-09-27 21:33:30
【问题描述】:

我有一个 4x5 的 char 数组,称为 fur 这个内容

 Name        Size     Bytes  Class    Attributes

  func        4x5     448     char    

我想找一个具体的表达方式,

DG= regexpi(fur,expression);

当我单独使用函数 regexpi 时,我得到了错误: 'STRING' 输入必须是 char 行向量或字符串元胞数组。

DG = cellfun(@(x)regexp(x, expression), fur,'UniformOutput', false)

我尝试使用 cellfun 进行操作,但仍然出现错误: 输入 #2 应为元胞数组,改为 char。

有什么解决办法吗?非常感谢

【问题讨论】:

  • fur后面肯定有逗号。
  • 是的,是打字错误,但这不是错误
  • 您也可以使用:regexp(fur(:)',expr)

标签: regex matlab expression


【解决方案1】:

如果你想使用 cellfun,你的数据应该是面向单元格的。

目前你有一个 nxm 字符数组。

要使用 cellfun,例如需要 n 个单元格,每个单元格中有一个 1xm 字符数组。

我不确定是否有一个简单且更有效的解决方案,但快速解决方法是通过在您的 chararray 上使用 cellstr 创建所需的单元格数组。

请注意,在这种情况下,您将不再需要 cellfun,因为您可以直接执行 rexexp。

【讨论】:

  • cellstr 会将该格式的字符串转换为字符串元胞数组(按行),并且由于regexpi 适用于元胞数组,您应该能够在没有cellfun 的情况下使用它
猜你喜欢
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多