如何在matlab中读取多个文本文件?

时间:2014-05-31 00:49:22

标签: matlab list file-io text-files textscan

如果可能请告诉我如何在Matlab中阅读不同的文本文件。 考虑到每个人应该处理33个txt文件。 这是我的代码有错误。 :(

 textFilename = cell(1,33);
        id = cell(1,33);
        for k=1:33;
        textFilename{k} = fullfile('C:\Users\Desktop\SentimentCode\textfiles',['file' num2str(k)     '.txt']);
        id{k} = fopen(textFilename{k},'rt'); 
        str{k} = textscan(id{k},'%s%s'); 

    end                                                      
    str(str == '.') = '';
    str(str == '_') = '';
    str(str == '-') = '';


% Remove numbers from text
    T =regexprep(str, '[\d]', ' ');                                  

  and my error is :   ??? Undefined function or method 'eq' for input arguments of type 'cell'.

Error in ==> Untitled9 at 23
str(str == '.') = '';

2 个答案:

答案 0 :(得分:0)

只需查看示例代码:

extFilename{k} = fullfile(..); 

应该是

textFilename{k} = fullfile(...);

最好在阅读后关闭文件:fclose(id{k})

答案 1 :(得分:0)

在您当前的编辑中,您的错误似乎更倾向于删除。 - 和_字符。 == compacompion对字符串的效果更好,而textscan则返回一个单元格

而不是

str(str == '.') = '';
str(str == '_') = '';
str(str == '-') = '';

尝试使用

regexprep(str,'(\.|-|_)','')

一次替换所有('\。'需要'。''是一个特殊字符)。 这适用于细胞串,因此根据细胞结构的深度,您可能需要在for循环中调用它,str {k},str {k} {1},str {k} {i等等...... 另一种方法是查看cellfun 或/和strjoin ...取决于您的数据在文件中的排列方式。