MATLAB converting a vector of values to uint32
bit-manipulation, data-conversion, matlab, unsigned-integer, vector
Solution
Here's a vectorized version:
v = floor(rand(64,1)*4);
nWord = size(v,1)/16;
sum(reshape([bitget(v,2) bitget(v,1)]',[32 nWord]).*repmat(2.^(31:(-1):0)',[1 nWord ]))
Problem
I have a vector containing the values 0, 1, 2 and 3. What I want to do is take the lower two bits from each set of 16 elements drawn from this vector and append them all together to get one uint32. Anyone know an easy way to do this? Follow-up: What if the number of elements in the vector isn't an integer multiple of 16?