Most efficient way to convert from binary to dec without bin2dec or bi2de

Is there a faster way to acomplish the following? The idea is to have an array of 5 bit inputs and convert each sequence of bits into a decimal.
p = [1 1 0 0 1; 1 0 0 0 1]
x = 2
[m n] = size(p);
y = zeros(m, 1);
for ii = 1:m
y(ii) = polyval(p(ii,:),x)
end
I want to be able to input 300,000 rows and 16 columns and eventually 32 or even 64 columns.

 Accepted Answer

sum(p.*(2.^(size(p,2)-1:-1:0)),2)

1 Comment

With only the minor caveat that if you have more than 52 bits, it will fail, since the result will be in the form of a double.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!