#include <DeInterleaveSizecontrol.h>
Inherits Marsyas::MarSystem.
This is designed, so that its output can potentially be meaningfully split by the Parallel MarSystem.
if you want to deinterleave samples (possibly with different channels containing different numbers of samples): transpose, then deinterleave using this marsystem, then transpose again (using the Transposer MarSystem).
Same basic functionality as DeInterleave. As opposed to that one, this is not matrix multiplication based, and therefore has additional support for rows (observations) of different lengths.
In general this means that: The input realvec is assumed to be organized in numSets equal modulo sets - i.e. in a n*numSets,n*numSets+1,...,n*numSets+(numSets-1) manner. This marsystem ensures that the output will be ordered with the sets grouped together - i.e. in a numSet[0][0],numSet[0][1],numSet[0][2],...,numSet[0][inObervations/numsets], numSet[1][0],numSet[1][1],numSet[1][2],...,numSet[1][inObervations/numsets], ..., numSet[numSets-1][0],numSet[numSets-1][1],numSet[numSets-1][2],...,numSet[numSets-1][inObervations/numsets] manner. Note that, if the number of observations is not divisible by the number of Sets, then the first "rest" groups will have one element more than the remaining groups. (With "rest" being the rest of the division of the number of observations by the number of Sets).
Controls:
Definition at line 62 of file DeInterleaveSizecontrol.h.
1.5.6