Efficient way to convert m by n array into a single column table with each row containing n by 1 array?

7 views (last 30 days)
Let's say I have a 4 by 3 array:
A = [1 3 5; 2 6 7; 5 8 9; 3 2 1];
What is the fastest/most memory efficient way of converting this into a single column table with the first row containing a column array of the first row of A, the second row containing a column array of second row of A etc.
I would like to end up with something like the result of the following:
row1 = A(1, :)';
row2 = A(2, :)';
row3 = A(3, :)';
row4 = A(4, :)';
A = table({row1; row2; row3; row4})
A = 4×1 table
Var1 ____________ {3×1 double} {3×1 double} {3×1 double} {3×1 double}
What is the best way to automate this for an arbitrary m by n array - preferably without using a loop.

Accepted Answer

Stephen23
Stephen23 on 19 Apr 2023
A = [1 3 5; 2 6 7; 5 8 9; 3 2 1];
T = cell2table(num2cell(A.',1).')
T = 4×1 table
Var1 ____________ {3×1 double} {3×1 double} {3×1 double} {3×1 double}

More Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!