Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab help, fscanf

  1. Nov 13, 2006 #1
    I have a text file with 3 columns (latitude, longitude, & station name) and 51 rows. Using fscanf I am able to read the first row of the file but not the whole file. Any ideas of how to read to the end of a text file that contains both numbers and letters?

    This is what I have:

    Thanks for you help,
  2. jcsd
  3. Nov 13, 2006 #2


    User Avatar
    Science Advisor

    Without knowing anything about Matlab, one option is to make a loop that reads each individual line from the file until you reach the end of the file, sticking the lines together into a single string as you go.
  4. Nov 14, 2006 #3
    I was able to read the file using textread.

    Here is my code:
    [lat,lon,sta]=textread('latlon_LAstations.txt', '%f %f %s')

    Now I have another text file with / in it (ex.2000/2/5). I'm not sure how to read that. Any ideas?

  5. Nov 18, 2006 #4

    Dr Transport

    User Avatar
    Science Advisor
    Gold Member

    if the file is in the same format, i.e. 3 columns and 51 lines, use the load function, it will read the file ito a 3 x 51 array, then break the arrays into the vectors you want, should take all of 5 lines of code to do it. Looping in Matlab is slow.....
  6. Nov 18, 2006 #5
    I would think that just changing the format string would work. ex:
    [year month day]=textread('data.txt', '%f/%f/%f')
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook