6

我有一个 txt 文件,文件的内容是数字行,每行有 5 个浮点数,每个数字之间用逗号分隔。例子:

1.1、12、1.42562、3.5、2.2

2.1、3.3、3、3.333、6.75

如何将文件内容读入matlab中的矩阵?到目前为止,我有这个:

fid = fopen('file.txt');
comma  = char(',');
A = fscanf(fid, ['%f', comma]);
fclose(fid);

问题是它只给了我第一行,当我尝试编写 AI 的内容时得到这个: 1.0e+004 * some number

有人能帮助我吗?我想对于该文件,我需要循环读取它,但我不知道如何。

编辑:还有一个问题:当我向 AI 输出时得到这个:

A =

1.0e+004 *
4.8631         0         0         0    0.0001
4.8638   -0.0000   -0.0000    0.0004    0.0114
4.8647   -0.0000   -0.0000    0.0008    0.0109

我希望文件中的值与矩阵中的值相同,我怎样才能使数字成为常规浮点数而不是像这样格式化?还是矩阵中的数字实际上是浮动的,但输出只是这样显示?

4

3 回答 3

10

MATLAB 的内置dlmread函数将是您想要完成的更简单的解决方案。

A = dlmread('filename.txt',',') % call dlmread and specify a comma as the delimiter
于 2013-04-23T18:18:29.250 回答
6

尝试使用importdata功能

A = importdata(`filename.txt`);

它会解决你的问题。

编辑

备选方案 1)

A = dlmread('test_so.txt',',');
于 2013-04-23T18:17:56.097 回答
0

答案出奇的简单:

fid = fopen('depthMap.txt');
A = fscanf(fid, '%f');
fclose(fid);
于 2013-12-12T09:41:30.600 回答