首页 > 解决方案 > MATLAB:根据字符串中行的分隔来分隔表

问题描述

我想将表格的库仑分开,以与我想加载到表格中的字符串的数量和数据相对应。否则说,如果我有一个 2x1 字符串,我希望有一个表格,其中来自两个不同行的信息保持分开(但对于 nx1 字符串)。

这是我的示例和尝试:

String = ["Random info in middle one, "+ ...
        "Random info still continues. ",
        "Random info in middle two. "+ ...
        "Random info still continues. "];

    documents_Middle = tokenizedDocument(String);
    tdetails = tokenDetails(documents_Middle);
    
    for y=1:height(tdetails)
    Table_RandomInfoMiddle(y,:) = tdetails(y,{'Token','Type'});
    end

注意 2x1 字符串,因此每一行都有自己的唯一信息。现在,我的 2x1 字符串的所有信息都被放入一个单独的表中,如下所示:

在此处输入图像描述

我希望的结果看起来像这样(图像剪切以适应答案的想法):

在此处输入图像描述

主要思想是将这些信息分开。

感谢所有帮助。谢谢。

标签: stringmatlabdatatable

解决方案


您将无法拥有具有相同名称的不同列。我建议您执行以下操作。构造两个变量variableNamesvariables,它们包含标记和类型。然后使用这些来创建表:

s = ["Random info in middle one, "+ ...
            "Random info still continues. ",
            "Random info in middle two. "+ ...
            "Random info still continues. "];
t = table();
d = tokenizedDocument(s);

variableNames = [];
variables = [];

for n=1:length(d)
 variableNames = [variableNames {sprintf('Tokens for sentence %d',n)} {sprintf('Type for sentence %d',n)}];
 variables = [variables {d(n).tokenDetails.Token} {d(n).tokenDetails.Type}];
end

table(variables{:},'VariableNames',variableNames)

ans =

  11×4 table

    Tokens for sentence 1    Type for sentence 1    Tokens for sentence 2    Type for sentence 2
    _____________________    ___________________    _____________________    ___________________

         "Random"                letters                 "Random"                letters        
         "info"                  letters                 "info"                  letters        
         "in"                    letters                 "in"                    letters        
         "middle"                letters                 "middle"                letters        
         "one"                   letters                 "two"                   letters        
         ","                     punctuation             "."                     punctuation    
         "Random"                letters                 "Random"                letters        
         "info"                  letters                 "info"                  letters        
         "still"                 letters                 "still"                 letters        
         "continues"             letters                 "continues"             letters        
         "."                     punctuation             "."                     punctuation

推荐阅读