Is there a simple (ideally without multiple for the loop) way of grouping the vector of values according to the set of categories in Matlab?
I have a data matrix in the form
CATEG_A CATEG_B CATEG_C ... VALUE
1 1 1 ... 0.64
1 2 1 ... 0.86
1 1 1 ... 0.74
1 1 2 ... 0.56
...
and etc.
and I want an N-dimensional array
all_VALUE( CATEG_A, CATEG_B, CATEG_C, ..., index ) = VALUE_i
Of course, there can be any number of values with the same combination of categories, therefore it size(end)will be the number of the value in the largest category, and the remaining elements will be supplemented nan.
Alternatively, I would be happy
all_VALUE { CATEG_A, CATEG_B, CATEG_C, ... } ( index )
i.e. an array of vector cells. I suppose this is similar to creating a pivot table, but with n dimensions, not a calculation mean.
I found this function in the help
A = accumarray(subs,val,[],@(x) {x})
but I could not figure out how to get him to do what I wanted!