MATLAB: How to get matlab to recognize a date in a .txt file

datetext file

I have a .txt file with two columns, the first with dates in the format yyyy-mm-dd and the second with prices such as '42.23'. However, when I load the .txt file into matlab it only recognizes the year.
load data.txt
>> data(1,1)
ans =
2005
or
>> data(1,:)
ans =
1.0e+03 *
2.0050 0.0422
I need matlab to see the entire date for plotting purposes. Does anyone know how I can fix this?

Best Answer

  • Determine what the delimiter of your text file is. Space, tab, comma, etc. Then read the text file with one of the Matlab text reading functions.
    Here is some example code tailored to your use case.
    % delim = ' '; % space delimited
    delim = '\t'; % tab delimited
    % delim = ','; % comma delimited
    fid = fopen('data.txt'); % open file
    dataIn = textscan(fid,'%s %n','Delimiter',delim); % read file
    fclose(fid); % close file
    % dataIn{1} contains dates as char arrays
    % dataIn{2} contains values as doubles
    % convert to matlab date numbers
    myDates = datenum(dataIn{1},'yyyy-mm-dd');
    disp(datestr(myDates)); % Display datenumbers as strings
    You can use date numbers for the x-axis of your plot.
    plot(myDates,dataIn{2});
    datetick;
    Hope this helps.