string - 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 字符串的所有信息都被放入一个单独的表中,如下所示:
我希望的结果看起来像这样(图像剪切以适应答案的想法):
主要思想是将这些信息分开。
感谢所有帮助。谢谢。
解决方案
您将无法拥有具有相同名称的不同列。我建议您执行以下操作。构造两个变量variableNames
和variables
,它们包含标记和类型。然后使用这些来创建表:
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