【问题标题】:Undefined function or method 'split' for input arguments of type 'cell' in MATLABMATLAB 中“cell”类型的输入参数的未定义函数或方法“split”
【发布时间】:2012-02-20 19:22:49
【问题描述】:

我写了一个代码,我想在每列中根据分隔符分割许多行。我写了一个 for 循环,它为我完成了它。

Pdbindex 是一个单元格数组,我的值存储在其中,我试图用分隔符、冒号 (:) 进行拆分。

for i = pdbindex(:,1)

    clean2_pdb = split(':', pdbindex);

end

但是,它向我抛出了一个错误声明,Undefined function or method 'split' for input arguments of type 'cell'.。

我不知道如何解决这个问题。

请指教。

更新:

我还发布了另一个使用strsplit 函数的问题。弹出一个不同的问题。

链接:Strsplit function

【问题讨论】:

  • 这是自我解释。那么你有功能拆分吗?如果是这样,输入需要什么?
  • 是的,它存在于路径中。基本上,第一个对象接受您要从中拆分的分隔符,第二个对象接受包含您要从中拆分的值的元胞数组。
  • 那我只是在猜测 - 但它确实听起来像 split 需要字符串而不是单元格。但也许您可以澄清您使用的拆分方式。
  • 从标题和描述来看,问题是split函数不在路径上。您已经询问过如何向路径添加函数。

标签: arrays matlab split cell


【解决方案1】:

没有名为split 的函数。你想要的是:

for i = 1:size(pdbIndex, 1)
    clean2_pdb = regexp(pdbIndex{i,1}, ':', 'split');
end

【讨论】:

  • 我使用的是 MATLAB 2010b 版,它们确实在路径中作为函数拆分。回到您的解决方案,我不希望将整行连接起来。我希望每个人都沿着各自的列拆分第一列中的所有行。例如。第一行的第一列有 153,第二列有 154,依此类推。
  • 请更清楚您的问题。您的问题是“拆分返回错误”。答案是“没有这样的功能。使用其他东西”。
  • 对不起,我不知道为什么没有适合你的功能,但它是给我的。但是,我已经设法使用正则表达式并调用了更多参数。这解决了我一直有的所有困惑。
【解决方案2】:

另一种方法是将单元格数据作为字符串访问,然后对单元格内容使用 strsplit 函数。

for i = 1:size(pdbIndex, 1)
clean2_pdb = strsplit(pdbIndex{i},':')
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多