我写了一个for循环,在其中沿着它们所在的每一列相应地分割5000行。
包含这些行的单元格数组的示例:
从那张图片中,我想相应地沿着从第一列到结尾的那一行的各列拆分每一行。
这是我写的代码:
for i = pdbindex(:,1)
clean_pdb = regexprep(pdbindex, ':', ' '); % removes the colon (:) from the array and replaces it with a whitespace
pdb2char = char(clean_pdb); % converts the cell array into a character array
pdb2split = strsplit(pdb2char, ' '); % does a split based on the character array followed by a delimiter, which is the white space
end
我使用正则表达式用空格替换冒号(:)。但是,它给我一个错误陈述Input strings must have one row.
。我不知道如何解决这个问题。
请告知。
答案 0 :(得分:2)
我会这样做:
%Some sample data
data = {'1 : 2 : 3 :4: 5: 6';'7 :8 : 9: 10 :11 :12'};
根据分隔符划分所有行(分隔符是空格和“:”的任意组合)
splitData = regexp(data,'[\s\:]*','split')
现在您的拆分数据可以作为
读出example = splitData{row}{column};
您很可能希望将其转换为数字(而不是字符串)。您可以像这样一次执行这一行:
numericRow = num2double(splitData{rowNumber});