`textscan`只读取打开的文件一次

时间:2014-10-05 10:04:49

标签: matlab text

我有一个这样的文本文件:

3
bcs
acd
hgf

第一个数字显示以下字符块的行数和列数。 (这里,3表示3x3块)

我想读这个字符串块。我这样做

fid = fopen('file.txt');
A  = textscan(fid,'%s',3,'HeaderLines',1);

并返回正确的输出:

A =

{3x1 cell}

但是,如果我再次想要读取相同的行并再次存储它,它将返回并清空单元格数组:

B  = textscan(fid,'%s',3,'HeaderLines',1);

B =

{0x1 cell}

为了使其正常运行,我必须fclose该文件并再次fopen我的意思是,打开后我只能读取一次文件。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用frewind返回文件的开头,然后您可以再次使用textscan

fid = fopen('file.txt');
A  = textscan(fid,'%s',3,'HeaderLines',1);
frewind(fid)
B  = textscan(fid,'%s',3,'HeaderLines',1);