# MATLAB: How to access data from a table

table

I have a Table with 2 different set of experiments. each experiments have 2 subexperiments. each subexperiment have 5 sets of data. How to plot a graph of each subexperiment results? I need a plot of all subexperiments.

• You don't need table2array.
Your example data don't seem to match either description, so I'm just guess what they look like. Also you don't say what kind of plot.
>> type = [1;1;1;1;1;2;2;2;2;2;3;3;3;3;3];>> subexperiment = [1;2;3;4;5;1;2;3;4;5;1;2;3;4;5];>> result = randn(15,1);>> t = table(type,subexperiment,result)t =  15×3 table    type    subexperiment          result          ____    _____________    __________________     1            1          -0.204966058299775     1            2          -0.124144348216312     1            3            1.48969760778546     1            4            1.40903448980048     1            5            1.41719241342961     2            1            0.67149713360808     2            2           -1.20748692268504     2            3           0.717238651328838     2            4            1.63023528916473     2            5           0.488893770311789     3            1            1.03469300991786     3            2           0.726885133383238     3            3          -0.303440924786016     3            4           0.293871467096658     3            5          -0.787282803758638>> i1 = (t.type == 1);>> plot(t.subexperiment(i1),t.result(i1))
That plots all the type 1 results. Put that in a loop, perhaps using subplot. It's also pretty simple to do something like
rowfun(@plot,t,'GroupingVariable','type','NumOutputs',0)
but actually you'd need to write a two-line function that made a new figure window or paused or something, otherwise you'll only see the last plot.