Multi Row Tables / Combine information where row is equal?
5 views (last 30 days)
Show older comments
Lets say I run simulations with different parameters A,B and for each of the A and B values i simulate another set of parameters x,y
Parset1=['A';'A';'B';'B'];
Parset2=['x';'y';'x';'y'];
And my simulation maybe produces numbers of false positives from the simulation:
FalsePositives=[3;5;6;9];
table(Parset1,Parset2,FalsePositives)
And now maybe i want to get the total number of false positives for all simulations with same Parset1:
CumulativeFalsePositivesbyParset1=[8;8;15;15];
table(Parset1,Parset2,FalsePositives,CumulativeFalsePositivesbyParset1)
Is there an easy way to do this with code??
Maybe even cleverer, can I make tables like below?
Parset1 | Parset2 | FalsePositives | CumulativeFalsePositives
-------------------------------------------------------------------------------------------------------
| x | 3 |
A --------------------------------------------------- 8
| y | 5 |
-------------------------------------------------------------------------------------------------------
| x | 6 |
B --------------------------------------------------- 15
| y | 9 |
-------------------------------------------------------------------------------------------------------
0 Comments
Accepted Answer
Eric Sofen
on 3 Dec 2021
You can use varfun to apply the cumsum function to each group defined by Parset1.
Parset1=['A';'A';'B';'B'];
Parset2=['x';'y';'x';'y'];
FalsePositives=[3;5;6;9];
t = table(Parset1,Parset2,FalsePositives);
tc = varfun(@cumsum,t,"GroupingVariables","Parset1","InputVariables","FalsePositives")
% all in one table - copy over the original FalsePositives data
tc.FalsePositives = t.FalsePositives
0 Comments
More Answers (0)
See Also
Categories
Find more on Data Type Identification 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!