Подтвердить что ты не робот

Strsplit: undefined функция для типа ввода 'char'

У меня есть массив ячеек < 20x1 > , и каждый из них сохраняет некоторые данные в форме строки (как мне кажется!!!). Я хочу получить доступ к каждому элементу ячейки как отдельной строке, а split - в словах.

Ячейка ячеек имеет массив < 20x1 > cell и для доступа к каждому элементу в качестве ячейки Я использую цикл for.

for i=1:20
    line=newline{i}
end

Он показывает мне все элементы массива. Теперь, поскольку строка - это строка, я применяю функцию strsplit для извлечения слов в строке.

for i=1:20
   words(i,:)=strsplit(line)
end

Это дает мне сообщение об ошибке:

??? Undefined function or method 'strsplit' for input
arguments of type 'char'.

Error in ==> chk at 15
words=strsplit(newline{i})

Может кто-нибудь объяснить мне, где я ошибаюсь? Любая помощь будет оценена. Спасибо заранее.

4b9b3361

Ответ 1

Я предполагаю, что вы используете version для Matlab до R2013a. Несмотря на то, что они являются родовыми функциями и должны были быть добавлены пчелами давным-давно, strsplit и strjoin были только добавлены в эту самую последнюю версию.

Существует несколько способов избежать доступа к strsplit, если все, что вы хотите сделать, - это разделить строку на слова. Если все ваши пробелы являются простыми пространствами, вы можете просто использовать strread следующим образом:

strread(line,'%s','delimiter',' ')

Однако textscan должен быть более надежным:

textscan(line,'%s')

Использование regexp также должно быть надежным, но, скорее всего, будет медленнее:

regexp(line,'\s+','split')

Все эти возвратные выходы как массивы ячеек строк (ваши слова), так же, как strsplit. Выход из textscan переносится относительно других.