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

18 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by