Formatting exel import in readtable()

9 views (last 30 days)
I have an excel file with char arrays and numerical data. I import the data using readtable(). I want all the data to be homogeneous, that is either all or none of them as cell array. Currently i import the table and search through the table and change the type using num2cell(). Is there a better way to import all the columns as cell arrays irrelavent of whether they are a string/double?
Edit: Attached is the file I want to load into matlab. I have columns of string and numbers(or num arrays). But it could be that some columns can be completely empty. If the entire column is empty, readtable reads the missing values as NaN (type: double). If one or more values is present in a column, then readtable read the missing values as {'0x0 char'}. I wanted to remove this ambiguity.

Accepted Answer

Star Strider
Star Strider on 3 Oct 2022
It would help to have the Excel file to experiment with.
In its absence see the documentation on detectImportOptions and experiment with it.
  2 Comments
Akshayaa Pandiyan
Akshayaa Pandiyan on 6 Oct 2022
Thanks Star, I looked into it and this worked
opts = detectImportOptions(fileName);
opts = setvartype(opts, 'char');
opts = setvaropts(opts, 'FillValue', '');
Star Strider
Star Strider on 6 Oct 2022
As always, my pleasure!
An interesting solution!
I did not see the Excel file until just now. It seems as though you solved the problem, however if you need more help with it I will do what I can.

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!