Matlab .txt文件分析

时间:2012-12-07 00:23:14

标签: matlab text-files analysis

我正在分析.txt文件中的一组文本。该文件有30行,每行包含不同的短语,包含文本,数字和符号。

  1. 将此文件导入Matlab以进行分析的最佳方法是什么 (即:文本文件中有多少资本I或文件中有多少#text短语(分析每行的推文)

2 个答案:

答案 0 :(得分:2)

我认为您最好阅读文件line-by-line并将每行保存在单元格数组的单元格中:

fid = fopen(filename);
txtlines = cell(0);
tline = fgetl(fid);
while ischar(tline)
    txtlines{numel(txtlines)+1}=tline;
    tline = fgetl(fid);
end
fclose(fid);

通过这种方式,您可以使用txtlines{ii}轻松访问每一行。

如果您总是需要对整个文本执行操作(即整个文本文件中有多少个,而不是每行),您当然可以将这些行放在一个变量中。

对每一行执行操作,只需使用cellfun即可完成,例如计算资本数量'我是:

capI_per_line = cellfun(@(str) numel(strfind(str,'I')),txtlines);

答案 1 :(得分:0)

如果文件大小合适(大多数30行文件),我会立即将其全部读入内存。

fid = fopen('saturate.m');
str = fread(fid,inf,'*char')';
fclose(fid);

然后,根据您的需要,您可以对str变量使用基本矩阵运算,字符串运算或正则表达式样式分析。

例如,“我有多少资本?”是:

numIs = sum(str=='I'); 

或者,“someString有多少个实例?”是:

numSomeString = length(strfind(str, 'someString'));