MATLAB Answers

how to convert table to matrix?

6,325 views (last 30 days)
for minimization process Boolean function by using binary decision diagram.

Accepted Answer

Walter Roberson
Walter Roberson on 5 Feb 2018
table2array() . Or, if the table is all numeric, you can give the table name and then {:, :} such as
mytable{:,:}
  2 Comments
Walter Roberson
Walter Roberson on 7 Feb 2018
The code I posted does that. Table objects are always 2 dimensional in MATLAB and for two dimensions the terms array and matrix are the same thing.

Sign in to comment.

More Answers (4)

FAS
FAS on 20 Nov 2018
Suppose your table is X.
X = X{:,:}

MathWorks Support Team
MathWorks Support Team on 2 Sep 2020
Edited: MathWorks Support Team on 2 Sep 2020
To convert a table to a matrix, use the table2array function. (A matrix is a 2-D array.)
As an alternative, you can convert a table to an array by using the syntax “T{:,:}”, where “T” is the table. This syntax is the equivalent of “table2array”.
All variables in the table must have sizes and data types that allow them to be horizontally concatenated. For example, if all variables in “T” are numeric, then “table2array” returns a numeric array.
  2 Comments
Walter Roberson
Walter Roberson on 16 Dec 2020
table2array() converting 0.7 to 1 could happen if the table is mixed data type including at least one integer data type such as uint8 . Please check
unique( varfun(@class, T, 'outputformat', 'cell') )

Sign in to comment.


Sulaymon Eshkabilov
Sulaymon Eshkabilov on 4 Aug 2021
Another alternative to convert table to matrix is to use a syntax: M=T.Var, e.g.
T = table(magic(5))
T = 5×1 table
Var1 __________________________ 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
M=T.Var1
M = 5×5
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
  6 Comments
Walter Roberson
Walter Roberson on 18 Aug 2021
You can use variable indexes if the indexes are constant.
If the variable order is not constant, then you can take T.Properties.VariableNames and extract whatever subset of those you want and sort them in whatever you want. Then you can loop doing dynamic field names.
Example, selecting variables that start with "run"
names = T.Properties.VariableNames;
runvars = sort(names(startsWith(names, 'run')));
nrun = length(runvars);
for varidx = 1 : nrun
thisvarname = runvars{varidx};
thiscontent = T.(thisvarname);
stuff here
end

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!