Extract data range from nested cell array

Hi,
I have a 5x1 cell array where each cell is a sheet from an excel spreadsheet (5 sheets in total). I used 'readtable' to read in the excel data. I am trying to extract a data range from this nested cell array but I can't find the correct notation. This doesn't work:
cell_array_data_range = cell_array{1,1}{8,2}:{8,7}
error: Operator ':' is not supported for operands of type 'cell'.
I am trying to extract, from the first sheet (i.e. {1,1}), the 2nd till the 7th elements from row 8.
Thank you

3 Comments

Can you share the code where you construct cell_array using readtable?
cell_array=cell(5,1); %initialize
for w=1:5
cell_array{w,1} = readcell('My_Excel_file_name', 'Sheet', num2str(excel_sheet_names(w,1)));
end
%excel_sheet_names is a 5x1 string where each element is the sheet name of the excel file
thank you for your reply
My mistake, I forgot i changed 'readtable' for 'readcell'

Sign in to comment.

 Accepted Answer

This syntax should work "to extract, from the first sheet (i.e. {1,1}), the 2nd till the 7th elements from row 8":
cell_array{1,1}(8,2:7)
Or, simpler:
cell_array{1}(8,2:7)
which we can do because cell_array has only one non-singleton dimension (in this case cell_array is a column vector).
If you used readtable, then either of those two expressions returns a 1x6 table; if you used readcell, then they give you a 1x6 cell array.

2 Comments

Thank you so much, this is exactly what I was looking for!
You're welcome!

Sign in to comment.

More Answers (0)

Products

Release

R2021b

Asked:

on 10 Jul 2022

Commented:

on 11 Jul 2022

Community Treasure Hunt

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

Start Hunting!