Part of the problem is that you're trying to push a 749x2 matrix into an array of 749x1 size (BMactive(:,jj) only calls one column at a time).
As for creating 20 matrices, do you really need 20 matrices, or do you just want 20 sets of the information? Creating a number of matrices is generally not recommended with MATLAB, instead we generally recommend you index to another dimension. See the following as an example:
BMactive(:,:,jj) = [idact(:), BMact(:,jj)];
The simple change implemented should change BMactive to be the size of 749x2x20, where each 'sheet' is your 749x2 array that you wanted to put into a separate array. If you need to call it specifically, just index to the desired sheet.
If this does not address your problem at all, please explain more, because I clearly don't understand.