How do I access data from a table?
1 次查看(过去 30 天)
显示 更早的评论
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/164199/image.png)
0 个评论
采纳的回答
Peter Perkins
2017-5-18
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.
4 个评论
Peter Perkins
2017-5-23
Create a short example of actual code that you are using, using a small sample of exactly the kind of data you have, and show exactly what you are trying to do, and where you are running into problems.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!