Mercurial > hg > massef
changeset 25:9c2d361e5d42
Merged ‘develop’.
- Updated submodule.
- MASSEFresults: Corrected table output when performing aggregating functions. Added boxPlot() method to automatically plot performance data for each algorithm/estimate.
- MASSEF: iosr.install has been moved to install method. Clear mixture cache before saving in order to reduce file size.
author | Christopher Hummersone <c.hummersone@surrey.ac.uk> |
---|---|
date | Wed, 29 Mar 2017 13:20:46 +0100 |
parents | ba256926c559 |
children | b98f92674cbc |
files | .hgsubstate MASSEF.m MASSEFresults.m |
diffstat | 3 files changed, 36 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgsubstate Wed Mar 29 09:31:12 2017 +0100 +++ b/.hgsubstate Wed Mar 29 13:20:46 2017 +0100 @@ -1,1 +1,1 @@ -b98b6559c275b487a42c62b1cc32c92c31147e4e Library +5eb5d21bd3da71ce11ef0e46fc9b3437afcb47a5 Library
--- a/MASSEF.m Wed Mar 29 09:31:12 2017 +0100 +++ b/MASSEF.m Wed Mar 29 13:20:46 2017 +0100 @@ -403,6 +403,7 @@ 'target_ele', mixtures(n).target.elevation, ... 'tir', mixtures(n).tir ... ); + mixtures(n).clearCache(); end obj.save(); @@ -561,7 +562,6 @@ SOFAstart(0); amtstart; - iosr.install; d = pwd; cd([MASSEF.dir filesep 'help_html' filesep 'source'])
--- a/MASSEFresults.m Wed Mar 29 09:31:12 2017 +0100 +++ b/MASSEFresults.m Wed Mar 29 13:20:46 2017 +0100 @@ -35,6 +35,8 @@ % MASSEFRESULTS methods: % MASSEFresults - Create a MASSEFresults object. % algorithmInfo - Add algorithm information. +% boxPlot - Analyse the results data by plotting notched +% box plots. % filter - Filter the results set. % input - Add performance data. % merge - Combine results array into singular object. @@ -304,6 +306,33 @@ end + function bph = boxPlot(obj) + %BOXPLOT Analyse the results data by plotting notched box plots + % + % R.BOXPLOT() produces a series of box plots, one for each + % metric, plotting the performance of each algorithms/estimate + % aggregated across all mixtures. + % + % BPH = R.BOXPLOT() returns an array of IOSR.STATISTICS.BOXPLOT + % objects BPH for the plots. + + for m = numel(obj.metrics):-1:1 + + tabData = obj.filter('metric', @(x) strcmp(x, obj.metrics{m}), 'channel', 'max'); + tabData.name = strcat(tabData.algorithmLabel, ':', {' '}, tabData.estTag); + + [y, x] = iosr.statistics.tab2box(tabData.name, tabData.value); + + figure + bph(m) = iosr.statistics.boxPlot(x, y, 'notch', true); + ylabel(obj.metrics{m}) + xlabel('Algorithm') + box on + + end + + end + end % public methods methods (Hidden) @@ -331,15 +360,16 @@ end % do stats try - dataTable = varfun(fhandle,dataTable,'InputVariables','value',... + filteredTable = varfun(fhandle,dataTable,'InputVariables','value',... 'GroupingVariables',group); catch - dataTable = varfun(fhandle,dataTable,'InputVariables','value',... + filteredTable = varfun(fhandle,dataTable,'InputVariables','value',... 'GroupingVariables',altgroup); end % rename value column and delete GroupCount column - dataTable = obj.findRenameVar(dataTable,'value','value'); - dataTable.GroupCount = []; + filteredTable = obj.findRenameVar(filteredTable,'value','value'); + filteredTable.GroupCount = []; + dataTable = join(filteredTable, dataTable); else % normal filter function dataTable = obj.filterRows(dataTable,filterval,col);