how to read multiple sheets (Tab) data and save it in a single matrix?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hydro
el 19 de Mayo de 2018
Comentada: Johann Martinez
el 10 de Feb. de 2021
Hello, I am trying to read an excel file with 19 sheets (tabs) whereas each tab has 365(or 366)*1 data. I want all the tabs to be on one sheet (all columns side by side) in a matrix form. I tried with code below but no success. Appreciate all the good thoughts and help.
[~,SheetNames] = xlsfinfo('Yr00.xlsx');
nSheets = length(SheetNames);
for ii=1:nSheets
Name=SheetNames{ii};
Data=xlsread('Yr00.xlsx',Name);
S(ii).Data=Data;
end
0 comentarios
Respuesta aceptada
Majid Farzaneh
el 19 de Mayo de 2018
Hi, I hope this can help you:
[~,SheetNames] = xlsfinfo('Yr00.xlsx');
nSheets = length(SheetNames);
Data=[];
for ii=1:nSheets
Name=SheetNames{ii};
Data=[Data, xlsread('Yr00.xlsx',Name)];
end
S.Data=Data
13 comentarios
Walter Roberson
el 1 de Feb. de 2020
Johann Martinez
el 10 de Feb. de 2021
Hi all! It doesn't work thw accepted answer since Matlab 2019a presents lot of issues with xlsinfo(), and xlsread().
Does anyone could state another proposal with current well worked Matlab's functions ?
Thanks in advance.
Más respuestas (1)
Walter Roberson
el 19 de Mayo de 2018
That looks okay as far as it goes. What is left after that is putting the data all together in one matrix. For that purpose, how do you want to handle the leap year? Do you want the rows matched by calendar date, in which case 3/4 of the rows would have missing data for February 29? Or do you want the rows matched by day number of the year, in which case 1/4 of the rows would have one extra column? What "fill" value do you want to use for the "holes" ?
4 comentarios
Ver también
Categorías
Más información sobre Spreadsheets en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!