首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Matlab从文本文件中读取数字

如何通过Matlab从文本文件中读取数字
EN

Stack Overflow用户
提问于 2016-08-08 02:53:51
回答 2查看 252关注 0票数 0

我有1000个文本文件,并希望从每个文件中读取一个数字。

文本文件格式如下:

代码语言:javascript
复制
 af;laskjdf;lkasjda123241234123
$sakdfja;lskfj12352135qadsfasfa
falskdfjqwr1351

##alskgja;lksjgklajs23523,
asdfa#####1217653asl123654fjaksj
 asdkjf23s#q23asjfklj
asko3

我需要读取每个txt文件中"#####“后面的数字("1217653")。

这个数字将紧跟在所有文本文件中的"#####“后面。

"#####“和后面的数字在每个文件中只出现一次。

代码语言:javascript
复制
clc
clear
MyFolderInfo = dir('yourpath/folder');
fidin = fopen(file_name,'r','n','utf-8');
while ~feof(fidin)
    tline=fgetl(fidin);
    disp(tline)
end
fclose(fidin); 

还没完成呢。我被这个问题困住了,那就是它看不懂后的空格线。

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-08 08:11:07

这是使用函数regex的另一种方法。这将很容易地提供一种更高级的读取文件的方法,并且不需要一次读取完整的文件。与已经给出的例子不同的是,基本上我逐行读取文件,但由于该示例使用了这种方法,所以我认为值得回答。这将返回所有出现的"#####NUMBER“。

代码语言:javascript
复制
function test()
h = fopen('myfile.txt');
str = fgetl(h);
k = 1;
while (isempty(str) | str ~= -1 ) % Empty line returns empty string and EOF returns -1
    res{k} = regexp(str,'#####\d+','match');
    k = k+1;
    str = fgetl(h);
end

for k=1:length(res)
    disp(res{k});
end

编辑

使用表达式'#####(\d+)‘和参数'tokens'而不是'match'将实际返回"#####“后面的数字作为字符串。除了展示读取文件的另一种方式外,本文的目的还在于通过一个简单的示例展示如何使用regexp。这两种选择都可以在适当的转换下使用。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38820669

复制
相关文章

相似问题

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