MATLAB Answers

0

create table from matrix and cell variables

Asked by Ildiko Magda on 13 Jul 2019
Latest activity Commented on by 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

upload data file

Sign in to comment.

1 Answer

Answer by the cyclist
on 13 Jul 2019
Edited by the cyclist
on 13 Jul 2019
 Accepted Answer

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

Absolutely amazing, thank you. And thank you for the detailed steps, I'm learning, so it's very useful to me to understand

Sign in to comment.