1234567891011121314151617181920212223 |
- function selectedM = pair_idx(M,varargin)
- omitdim = [];
- indexingdim = [];
- dim_index = {};
- for i = 1:length(varargin)
- if isempty(varargin{i})
- omitdim(end+1) = i;
- else
- indexingdim(end+1) = i;
- dim_index{end+1}=varargin{i};
- end
- end
- permute_order = [indexingdim,omitdim];
- perM = permute(M,permute_order);
- perMsize = size(perM);
- indexingSize = perMsize(1:length(indexingdim));
- omitSize = perMsize(length(indexingdim)+1:end);
- indexing_ind = sub2ind(indexingSize,dim_index{:});
- reshape_perM = reshape(perM,prod(indexingSize),[]);
- reshape_selectedM = reshape_perM(indexing_ind,:);
- selectedM = reshape(reshape_selectedM,[size(reshape_selectedM,1),omitSize]);
- end
|