Extracting data from a table
11 views (last 30 days)
Show older comments
Teresa Phillips
on 15 Aug 2016
Commented: Toshikazu Kawagoe
on 26 Jun 2018
I have a table with multiple variables most of which are numerical. I have one variable which is categorical, I would like to be able to extract all the data relating to the specific variable.
For example my categories are REST, EXERCISE and RECOVERY. The data is split into 22 different variables (of which the phase is column 20) and I would like to create a table with only the REST data in it.
Currently, the data belongs to 'TestTable' which is a 130x22 table (the number of rows in the table will vary depending on the data set).
Any suggestions would be greatly appreciated, and as simple as possible please!
0 Comments
Accepted Answer
Guillaume
on 15 Aug 2016
This is basic table filtering:
resttable = TestTable(TestTable.Phase == 'REST', :) %select only those rows that are REST and all columns
or
resttable = TestTable(TestTable{:, 20} == 'REST', :)
I'd recommend the first syntax.
5 Comments
Peter Perkins
on 28 Mar 2018
You need to create a logical vector that is true for rows in those two categories. Ignore tables for a moment. How would you create a logical vector based on two conditions?
Toshikazu Kawagoe
on 26 Jun 2018
I did the same thing for my table data but MATLAB said you cannot use '==' for cell data. What should I do?
More Answers (1)
Pawel Ladosz
on 15 Aug 2016
Edited: Pawel Ladosz
on 15 Aug 2016
Hi Teresa, to get the REST Column from the table the command would look something like this:
A = TestTable{:,{'REST'}}
Or
A = TestTable.REST
Let me know if any of those worked for you.
2 Comments
Guillaume
on 15 Aug 2016
If I understood correctly, 'REST' is not a variable of the table, but one of the categories of the 'PHASE' variable.
See Also
Categories
Find more on Tables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!