首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用textscan读取文件中的所有行

如何使用textscan读取文件中的所有行
EN

Stack Overflow用户
提问于 2012-12-13 02:45:46
回答 3查看 37.1K关注 0票数 4

我正在尝试使用以下代码读取.m文件中的所有行

代码语言:javascript
复制
file_content = textscan(fid, '%s', 'delimiter', '\n', 'whitespace', '')

但这只会返回

代码语言:javascript
复制
file_content = 

    {0x1 cell}

实际上我的文件有224行。所以如果我使用

代码语言:javascript
复制
file_content = textscan(fid,'%s',224,'delimiter','\n')

我听懂了所有的台词

代码语言:javascript
复制
file_content = 

    {224x1 cell}

读取.m文件中的所有数据(主要是字符串),哪种方法更合适?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-13 03:31:00

由于您没有列出您的需求(您是否正在读取一个大文件?许多小文件?速度是个问题吗?你真正想做的是什么?)我给你一个最简单的答案:

您可以执行以下操作:

代码语言:javascript
复制
f = fopen('data.txt');             
g = textscan(f,'%s','delimiter','\n');
fclose(f);

记住在阅读后关闭,否则你将无法再次阅读。

第一行可以是g{1}{1},第二行是g{1}{2},依此类推。

这里是textscan的matlab文档,它提供了更多的细节。

票数 3
EN

Stack Overflow用户

发布于 2013-10-01 05:15:50

下面是一个对我有效的方法:

代码语言:javascript
复制
fid = fopen('filename','r'); %opening in read mode (default)
inter = textscan(fid,'%[^\n]'); 
lines = inter{1,1};
fclose(fid);

这个命令“逐行”读取整个文件。例如,我有一个1332行的文本文件,这段代码创建了一个变量inter,它是一个{1,1 cell}lines是一个[1x102944 char]

我不确定这是为什么/如何工作的(如果其他阅读这篇文章的人知道如何工作就好了!)但它适用于我的程序。

票数 3
EN

Stack Overflow用户

发布于 2014-02-07 11:48:02

对textscan的调用意味着“读取所有内容,直到a \n”。

通常情况下,您的文件可能有混合的行结尾,或者根本没有行结尾,并且使用':‘或其他东西分隔记录。

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

https://stackoverflow.com/questions/13846491

复制
相关文章

相似问题

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