如何在matlab中读取文件?

时间:2013-04-23 18:14:15

标签: file matlab matrix

我有一个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);

问题是它只给我第一行和我 尝试写A的内容我得到这个:1.0e + 004 *一些数字

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

编辑:还有一个问题:当我输出到A时,我得到了这个:

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

我希望文件中的相同值在矩阵中,如何使数字成为常规浮点数而不是像这样格式化?或者矩阵中的数字是否实际浮动,但输出只是这样显示?

3 个答案:

答案 0 :(得分:9)

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

A = dlmread('filename.txt',',') % call dlmread and specify a comma as the delimiter

答案 1 :(得分:6)

尝试使用importdata功能

A = importdata(`filename.txt`);

它将解决您的问题。

修改

备选方案1)

A = dlmread('test_so.txt',',');

答案 2 :(得分:0)

答案非常简单:

fid = fopen('depthMap.txt');
A = fscanf(fid, '%f');
fclose(fid);