首页 > 解决方案 > 如何处理具有不同数量分隔符的元胞数组

问题描述

使用拆分出错

文本的第 5 个元素包含 4 个分隔符,而前面的元素有 5 个。所有元素必须包含相同数量的分隔符。

str = split(s4, ",");
'15:54:58.882",tscompute1,"524,288",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"294,912",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"786,432",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"491,520",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,0,bytes,"intel_rdt"'
'15:54:58.882",tscompute1,0,bytes,"intel_rdt"'

在使用 split() 函数拆分具有不同数量分隔符的字符串元胞数组时,我遇到了上述错误。提供了样本数据。

标签: matlab

解决方案


您的问题是(我假设)s4是您的单元格,因此您需要以头韵方式访问其中的每个字符串s4(使用花括号{})。

str = [];
for i = 1:length(s4)
    str = [str; split(s4{i}, ",")];
end

是 MATLAB 参考文档split。要了解有关单元如何工作的更多信息,请阅读MATLAB 文档页面。

但是,如果您的单元格是 Mx1,您需要做的就是将单元格转置为 1xM,以便将其完全加载到split.

s4 = tranpose(s4);
str = split(s4, ",");

推荐阅读