在matlab中读取格式化输入

时间:2012-04-24 01:10:32

标签: matlab io

我正在尝试读取每行有5个条目的文件,其中两个是浮点数,其他是整数。但是,matlab的fscanf函数只能读取两行,我猜这是一个内存问题(只有5k行的数据?)。

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我怀疑它是一个记忆问题。 也许你的输入文件中有一些意想不到的字符? 你可以复制以下内容吗?

input.txt中

3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877
3.4E-5 4.2E14 1475 381 998877

end input.txt

filename='input.txt';
fid = fopen(filename);
A = fscanf(fid, '%f %f %d %d %d', [5 inf])';
fclose(fid);


>> A(:,1)

ans =

  1.0e-004 *

    0.3400
    0.3400
    0.3400
    0.3400
    0.3400

>> A(:,5)

ans =

    998877
    998877
    998877
    998877
    998877

请注意,因为我非常确定当使用带有多种数字类型的fscanf时,所有数字都会被破坏。

>> class(A(:,5))

ans =

 double