How do I use fscanf to read correctly?

Hi,
I am trying to use fscanf f to read a txt file.
I want
1 0.0 0.0
2 0.0 120.0
3 120.0 0.0
4 120.0 120.0
However when I put in my code
data = fscanf (inp, "%d %f %f" , [nNode,3]);
This is what shows up:
1 0 0
0 120 4
0 3 120
2 120 120.
Thank you so much!

Answers (1)

Piotr Balik
Piotr Balik on 7 Sep 2021
Edited: Piotr Balik on 7 Sep 2021
Fscanf tries to read whole file at once, but does output it along rows, hence your problem occurs. You could try other maneuvers, but this simple code assumes you know how big is your file
for ii=1:nNode
data(ii,:) = fscanf (inp, "%d %f %f" , [1,3])
end
fclose(inp)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Products

Release

R2019b

Tags

Asked:

on 7 Sep 2021

Edited:

on 7 Sep 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!