我正在分析.txt文件中的一组文本。该文件有30行,每行包含不同的短语,包含文本,数字和符号。
答案 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'));