Как обработать массив ячеек с разным количеством разделителей - PullRequest
0 голосов
/ 26 марта 2019

Ошибка при использовании разбиения

Элемент 5 текста содержит 4 разделителя, в то время как предыдущие элементы имеют 5. Все элементы должны содержать одинаковое количество разделителей.

str = split(s4, ",");
'15:54:58.882",tscompute1,"524,288",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"294,912",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"786,432",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,"491,520",bytes,"intel_rdt"'
'15:54:58.882",tscompute1,0,bytes,"intel_rdt"'
'15:54:58.882",tscompute1,0,bytes,"intel_rdt"'

Я получаю сообщение об ошибке, как упоминалось выше, при использовании функции split () для разделения массива ячеек строк с различным количеством разделителей.Предоставляется образец данных.

1 Ответ

0 голосов
/ 26 марта 2019

Ваша проблема в том, что (я полагаю) s4 - это ваша ячейка, поэтому вам необходим аллитеративный доступ к каждой строке в s4 (с фигурными скобками {}).

str = [];
for i = 1:length(s4)
    str = [str; split(s4{i}, ",")];
end

Здесь - справочный документ MATLAB для split. Чтобы узнать больше о том, как работают ячейки, прочитайте эту страницу документа MATLAB.

Однако, если ваша ячейка имеет размер Mx1, все, что вам нужно сделать, это переставить ячейку, чтобы сделать ее 1xM, чтобы полностью загрузить ее в split.

s4 = tranpose(s4);
str = split(s4, ",");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...