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

17 views (last 30 days)
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

Walter Roberson
Walter Roberson on 5 Jul 2019
sum(p.*(2.^(size(p,2)-1:-1:0)),2)
  1 Comment
John D'Errico
John D'Errico on 6 Jul 2019
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

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!