shlomi
shlomi

Reputation: 549

How to read file in matlab?

I have a txt file, and the content of the file is rows of numbers, each row have 5 float number in it, with comma seperate between each number. example:

1.1 , 12 , 1.42562, 3.5 , 2.2

2.1 , 3.3 , 3 , 3.333, 6.75

How can I read the file content into matrix in matlab? So far I have this:

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

The problem is that it's only give me the first line and when I try to write the content of A I get this: 1.0e+004 * some number

Can someone help me please? I guess that for the file I need to read it in a loop but I don't know how.

Edit: One more question: When I do output to A I get this:

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

I want the same values that in the file to be in the matrix, how can I make the numbers to be regular float and not formatted like this? Or are the numbers in the matrix actually float, but the output is just displayed like this?

Upvotes: 6

Views: 29244

Answers (3)

Derk
Derk

Reputation: 1395

The answer is surprisingly simple:

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

Upvotes: 0

Doresoom
Doresoom

Reputation: 7448

MATLAB's built-in dlmread function would be a much easier solution for what you want to accomplish.

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

Upvotes: 10

fpe
fpe

Reputation: 2750

try with using importdata function

A = importdata(`filename.txt`);

It will solve your question.

EDIT

Alternative 1)

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

Upvotes: 6

Related Questions