strsplit: неопределенная функция для типа ввода 'char'

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

массив ячеек у меня есть массив ячеек и для доступа к каждому элементу в качестве ячейки я использую цикл 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})

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

1 ответов


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

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

strread(line,'%s','delimiter',' ')
, textscan должно быть более надежным:
textscan(line,'%s')

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

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

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