Loading the excel file(cell array contains elements of different dimension) in MATLAB

2 views (last 30 days)
Hey all,
I have an excel file, I need to load this excel file in MATLAB, but it is showing NaN for the position where a matrix is built.
Here is an example:
A = xlsread('Area_Matrix.xlsx');
A =
0 NaN 0 0 0 0 23
NaN 0 47 0 0 0 18
But here NaN should be a matrix like below;
[0 0 ; 0 23];
It is like building a cell array in excel to have a matrix of different dimensions.
I need to get the cell array from excel like below:
A = { 0 [ 0 4749.50 ;0 2375.80] 0 0 0 0 [0 0; 0 2375.8 ] ;
[ 0 4749.50 ;0 2375.80 ] 0 [0 0; 0 2375.8 ] 4749.50 0 0 [0 0; 0 1835.80 ];
0 [ 0 0 ; 0 2375.80] 0 0 0 0 0;
0 4749.50 0 0 2375.80 4749.50 [0 0; 0 1835.80 ];
0 0 0 2375.80 0 0 0;
0 0 0 4749.50 0 0 [0 0; 0 2375.8 ] ;
[0 0; 0 2375.8 ] [0 0; 0 1835.80 ] 0 [0 0; 0 1835.80 ] 0 [0 0; 0 2375.8 ] 0};
So I am planning to use excel to enter the data and load it later in MATLAB.
Any suggestions and answers would be most welcomed
Thanks in advance.

Accepted Answer

Alex Mcaulley
Alex Mcaulley on 27 Jun 2019
Try this:
[num,~,A] = xlsread('Area_Matrix.xlsx');
A(isnan(num)) = cellfun(@str2num,A(isnan(num)),'uni',0); %A is the cell array you want

More Answers (0)

Community Treasure Hunt

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

Start Hunting!