Reading in excel file with multiple sheets into a cell array using readtable

조회 수: 4 (최근 30일)
Hi,
I am trying to read in an excel file with multiple sheets (5 sheets) using the readtable command. Each of these sheets is 40x50. Here is the part of the code i wrote:
n=5; %no. of excel sheets
opts=detectImportOptions(the_excel_file);
opts=setvartype(opts,'char');
excel_data=cell(n,1) %initialising the cell array
for v=1:n
excel_data(v,1)=table2cell(readtable(num2str(the_excel_file),opts,'Sheet',num2str(excel_sheets(v,1)))); %excel sheets is a 5x1 string of the excel sheet names.
end
However, I get this error:
Unable to perform assignment because the size of the left side is 1-by-1 and the size of
the right side is 40x50.
I don't understand what I did wrong? I have tried many things but the same error occurs. I am trying to store the data in each of the 5 sheets into a 5x1 cell array, such that each cell contains all the data from one sheet.
Thank you

채택된 답변

Kevin Holly
Kevin Holly 2022년 6월 21일
편집: Kevin Holly 2022년 6월 21일
You need to use curly brackets. Please see below.
n=5; %no. of excel sheets
excel_data=cell(n,1) %initialising the cell array
excel_data = 5×1 cell array
{0×0 double} {0×0 double} {0×0 double} {0×0 double} {0×0 double}
size(excel_data)
ans = 1×2
5 1
excel_data(1,1) % Notice this is a 1x1 cell array
ans = 1×1 cell array
{0×0 double}
excel_data{1,1} % to access the content inside the cell, use curly brackets.
ans = []
for v=1:n
data = rand(40,50);
excel_data{v,1}= data % use curly brackets here
end
excel_data = 5×1 cell array
{40×50 double} { 0×0 double} { 0×0 double} { 0×0 double} { 0×0 double}
excel_data = 5×1 cell array
{40×50 double} {40×50 double} { 0×0 double} { 0×0 double} { 0×0 double}
excel_data = 5×1 cell array
{40×50 double} {40×50 double} {40×50 double} { 0×0 double} { 0×0 double}
excel_data = 5×1 cell array
{40×50 double} {40×50 double} {40×50 double} {40×50 double} { 0×0 double}
excel_data = 5×1 cell array
{40×50 double} {40×50 double} {40×50 double} {40×50 double} {40×50 double}
  댓글 수: 2
Davindra Usov
Davindra Usov 2022년 6월 21일
I want to locate the indices of the word 'Latitudes' in each of the cells in the array, but my method outputs an error.
Method:
indices = find(~cellfun('Latitudes', excel_data)); %excel data is the cell array
Error:
Error using cellfun
Unknown option.
When I google this I don't get much information. Do you know what I have done wrong?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by