首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab .txt文件分析

Matlab .txt文件分析
EN

Stack Overflow用户
提问于 2012-12-07 00:23:13
回答 2查看 447关注 0票数 2

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

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

回答 2

Stack Overflow用户

发布于 2012-12-07 00:34:27

我认为最好读取文件逐行并将每一行保存在单元格数组的单元格中:

代码语言:javascript
复制
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}访问每一行。

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

在每一行上执行一个操作,可以简单地使用细胞乐趣来完成,例如,计算大写字母i的数量:

代码语言:javascript
复制
capI_per_line = cellfun(@(str) numel(strfind(str,'I')),txtlines);
票数 3
EN

Stack Overflow用户

发布于 2012-12-07 01:54:45

如果文件有合理的大小(大多数30行文件是这样的),我将立即将其全部读取到内存中。

代码语言:javascript
复制
fid = fopen('saturate.m');
str = fread(fid,inf,'*char')';
fclose(fid);

然后,根据您的需要,可以对str变量使用基本矩阵操作、字符串操作或regexp样式分析。

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

代码语言:javascript
复制
numIs = sum(str=='I'); 

或者“有多少个‘某样东西’的例子?”是:

代码语言:javascript
复制
numSomeString = length(strfind(str, 'someString'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13755048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档