Hi Yongming,

I think you have ensemble methods in mind, where you combine multiple different classifiers for a shared classification task (assuming you always have the same labels across all classifiers). We don’t have ensemble approaches implemented as a default, since there are a lot of different ways these could be done. However, it should be fairly easy for you to implement. Usually, a majority vote would take the most commonly voted response. Alternatively, you could take the decision values as a weighted version of the votes (which when I played around with maximizing accuracy from multiple ROIs worked better for me when there are few votes). I would ask TDT to return the decision values, i.e.

```
cfg.results.output = {'decision_values'}; % for a classical majority vote, use 'predicted_labels'
```

Then once you have all your results.mat files for the different ROIs, I would load them all in, and then combine the information across all your decoding analyses, e.g.

```
clear dv
load('res_region_x.mat')
dv(:,1) = results.decision_values.output{1}; % assuming one ROI in this analysis
load('res_region_y.mat')
dv(:,2) = results.decision_values.output{1}; % same here
...
```

Perhaps you did it all in one analysis, then you pick `results.decision_values.output{1}`

and `results.decision_values.output{2}`

. Now you sum across each row of `DV`

and take the sign to set everything to 1 or -1 (which is like a weighted majority vote):

```
DV = sum(dv,2);
predicted_labels = sign(DV);
```

Now assuming your labels were 1 and -1, you can just calculate the accuracy, i.e.

```
true_labels = cfg.design.label(:,1);
accuracy = mean(predicted_labels == true_labels);
```

Best,

Martin

P.S.: I just noticed the current version of getting decision_values and predicted_labels could be improved (it wouldn’t work with the code I wrote above). I just changed it and will upload the version that would work with the above code by tomorrow on our toolbox website.