Error using load Number of columns on line 2 of ASCII file
Afficher commentaires plus anciens
Hello everybody !
I want to make a prediction by using Extreme learning Machine (ELM), but i encountered a problem when reading data from my file excel. My data are in the following form:
Column 1: contains the date format (dd / mm / yyyy hh: mm)
Column 2: contains numeric values.
Here is the code :
train_data=load(TrainingData_File);
T=train_data(:,1)';
P=train_data(:,2:size(train_data,2))';
clear train_data;
Here is the error :
Error using load
Number of columns on line 2 of ASCII file SolarData_training.xlsx must be the same as previous lines.
I use Matlab R2014 a.
Thank you so much !
Réponse acceptée
Plus de réponses (4)
matlab tries to create a matrix with 2 rows. obviously your second row has more or less colums than the first row, so your matrix looks like
A =
1 0 2
3 4
such a matrix does not exist, thats why an error returns
use xlsread and the missing colums will be filled with NaNs
Walter Roberson
le 16 Jan 2017
1 vote
I would suggest readtable() for this purpose. As you are using R2014a, the times will not be converted to datetime objects; they will either show up as excel date numbers or as strings, depending on your operating system.
If you end up with an excel date number, then if you have the Finance toolbox you can use https://www.mathworks.com/help/finance/x2mdate.html
If you do not have that toolbox, then you can add datenum() of Dec 31 1899 to the date. But you have to be careful; see https://www.mathworks.com/matlabcentral/answers/254-converting-excel-serial-number-of-time-to-hh-mm-ss-format#answer_353
Hamza Ali
le 16 Jan 2017
0 votes
3 commentaires
Star Strider
le 16 Jan 2017
The date information is there. You have to request at least two outputs, the numeric data (the first output) and the ‘string’ output (the second output).
The second (‘string’) output contains the date strings as a cell array of strings. You can use the cell array as input to datenum to convert them to date numbers, and from there, convert them to other date formats if you want to.
See the documentation for xlsread and datenum for details.
per isakson
le 17 Jan 2017
Modifié(e) : per isakson
le 17 Jan 2017
"However, I get only one column that the numeric values, but the one containing the date is unrecoverable."   I guess, your problem is related to the difference between the default reference dates of Excel and Matlab.
MATLAB serial date number January 0, 0000
Excel for Windows January 1, 1900
Excel for the Macintosh January 2, 1904
Walter Roberson
le 17 Jan 2017
It is worse than that, Excel for Windows thinks Feb 29 1900 was a leap year but it was not, so the adjustment depends on whether your dates refer to dates after Feb 28 1900.
Catégories
En savoir plus sur Spreadsheets dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!