在MatLab中创建一个循环,用分隔符分隔句子列表

z9smfwbn  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(165)

我希望能够在当前代码中运行循环。我有一个有423个细胞的细胞阵列。每个单元格都是一长串较小的字符串,我试图用分隔符(;)分隔它们,我希望它循环遍历每个单元格,根据分隔符拆分字符串,并将单元格写入我创建的Excel工作表。但它只处理最新的单元,而不是聚合所有单元。
我有一个EXCEL表格(见截图),在C栏我有很多小句子,都用分隔符‘;’隔开。我希望代码遍历EXCEL中的每一行,并拆分这一大堆文本,以便分隔符之间的每句话都有自己的单元格,而不是全部放在一起。我已经设法使代码对一行有效,因此代码将所有小字符串分离到它自己的新行或新单元格中。但我不能对Excel中的每一行都这样做,代码只是简单地覆盖每一行。我想创建一个循环并迭代该过程。然后我想让它把这个大名单写到一个新的Excel表格上。我现在尝试创建一个迭代循环,但它不能正常工作;它将字符串写入到EXCEL,但由于某种原因,它没有捕获所有字符串。
以下是明文代码:

clc
clear
close all

T = readtable("/Users/sophieclarke/Documents/UKTPO/NIP project/NIP Annex regulations/Unmatched codes/unmatched codes.xlsx","range", "C1:C424");
C = table2cell(T);

for i=2:423
splitlist = unique(strsplit(C{i:i},';')) 

writecell(splitlist','not_list.xlsx')

end

Screenshot of my excel data

q7solyqu

q7solyqu1#

您需要将WriteMode', 'append'作为输入添加到writecell
我只在网上测试过这个,但它似乎运行得很好。

for i = 1:numel(C)
   split_str = unique(strsplit(C{i},';'))
   writecell(split_str, 'not_list.xlsx', 'WriteMode','append');
end

相关问题