При преобразовании ячейки в двойную произошла следующая ошибка: - PullRequest
1 голос
/ 15 марта 2012

Я ищу папку для текстовых файлов и добавляю эти файлы в новый массив с именем mytext

Это мой код

function fileList = removeElements(fileArray)

x = 1;
mytext = [];

for idx = 1:numel(fileArray)

if (~isempty(strfind(fileArray(idx),'.txt')  )) 

    mytext(x) = fileArray(idx)
    x=x+1;  

end 

end

end

Но я получаю ошибку

??? The following error occurred converting from cell to double:
Error using ==> double
Conversion to double from cell is not possible.

Error in ==> removeElements at 10
        mytext(x) = fileArray(idx)

Как я могу это преодолеть?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Строки обычно хранятся в массивах ячеек. Таким образом, вам нужно индексировать с {}, а не ():

mytext{x} = fileArray{idx};
1 голос
/ 15 марта 2012

Вы можете выбрать файлы * .txt из списка через

txtFiles = allFiles(cellfun(@(c)(~isempty(strfind('.txt',c))),allFiles));

Конструкция ~ isempty (strfind ('. Txt', c)) возвращает true, если строка c содержит строку '.TXT и ложь в противном случае.Конструкция allFiles (...) возвращает массив ячеек только тех элементов массива ячеек allFiles, для которых конструкция cellfun возвращает true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...