# create table from matrix and cell variables

14 views (last 30 days)
Ildiko Magda on 13 Jul 2019
Commented: Ildiko Magda on 13 Jul 2019
I would like to create a table using multiple variables, but can't figure out how to. my output table should look like a 21 x 176 table.
I have 4 variables
A = 18 x257 x 176 double
B = 176 x1 cell
C= 176 x 1 cell
D = 176 x 1 cell
I would like a table with 21 rows and 176 columns, but I can't figure out how. The rows would be A(1), B, C, and D
Thank you for any help ,

#### 1 Comment

madhan ravi on 13 Jul 2019

the cyclist on 13 Jul 2019
Edited: the cyclist on 13 Jul 2019
I'm not certain what you want, but I think this is it.
% Make up some original inputs
A = rand(18,257,176);
B = cell(176,1);
C = cell(176,1);
D = cell(176,1);
% Pull out the slice of A for the table
As = A(:,1,:);
% Transform each variable to the correct shape for the table, and also
% convert A to cell for convenience
Ar = reshape(As,[18,176]);
At = num2cell(Ar);
Bt = B.';
Ct = C.';
Dt = D.';
% Concatenate to one cell array
wholeCell = [At; Bt; Ct; Dt];
% Convert the cell array to a table
tbl = cell2table(wholeCell);
Many of these steps could be combined, for shorter code, but I thought it would be to be clearer about what each step is doing.

#### 1 Comment

Ildiko Magda on 13 Jul 2019
Absolutely amazing, thank you. And thank you for the detailed steps, I'm learning, so it's very useful to me to understand