Multi Row Tables / Combine information where row is equal?
조회 수: 5 (최근 30일)
이전 댓글 표시
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
채택된 답변
Eric Sofen
2021년 12월 3일
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!