Делить строку для нескольких строк в MATLAB - PullRequest
0 голосов
/ 20 февраля 2012

Я написал цикл for, в котором нужно разбить 5000 строк по каждому столбцу, в котором они находятся.

Пример массива ячеек, который содержит эти строки: enter image description here

Исходя из этого рисунка, я хотел бы разбить каждую строку соответственно по соответствующим столбцам этой строки, начиная с первого столбца и до конца.

Это код, который я написал:

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.. Я не знаю, как это решить.

Пожалуйста, сообщите.

1 Ответ

2 голосов
/ 20 февраля 2012

Я бы сделал это следующим образом:

%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});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...