Effacer les filtres
Effacer les filtres

How can I convert a matrix into a number?

25 vues (au cours des 30 derniers jours)
Jaybee
Jaybee le 12 Mar 2014
Commenté : Sagar Damle le 12 Mar 2014
suppose I have a matrix:
matrix=[1 1 0 1 0 1 1]
then I want it to be
1101011.
I used mat2str, num2str but it didn't satisfied me.
Thankyou! More power to you guys!
  1 commentaire
per isakson
per isakson le 12 Mar 2014
Try the function sprintf

Connectez-vous pour commenter.

Réponse acceptée

Mischa Kim
Mischa Kim le 12 Mar 2014
Modifié(e) : Mischa Kim le 12 Mar 2014
Use
matstr = strrep(num2str(matrix),' ','')
bin2dec(matstr)
ans =
107
  2 commentaires
Jaybee
Jaybee le 12 Mar 2014
this helps! thankyou! ive learned a new code :)
Sagar Damle
Sagar Damle le 12 Mar 2014
If your problem is to get 107 from [1 1 0 1 0 1 1],then you can read this :- There are many functions in MATLAB to convert base 10 to base 2 of a number –
1. dec2base()
2. dec2bin()
3. de2bi()
4. dec2binvec()
However,outputs of these are are not in same format. Run this code on your computer for understaning purpose. See help about these functions in MATLAB.
Note : '0' represents ASCII value of zero(0) which is 48. So,
ans2 = dec2base(4,2) - '0'
is same as
ans2 = dec2base(4,2) – 48
Play with these functions! ENJOY!
% Program -
temp1 = dec2base(4,2)
ans1 = str2num(dec2base(4,2))
ans2 = dec2base(4,2) - '0'
temp2 = dec2bin(4)
ans3 = dec2bin(4) - '0'
temp3 = de2bi(4)
temp4 = de2bi(4,'right-msb')
ans4 = de2bi(4,'left-msb')
temp5 = dec2binvec(4)
ans5 = seqreverse(dec2binvec(4))
whos

Connectez-vous pour commenter.

Plus de réponses (1)

per isakson
per isakson le 12 Mar 2014
Try
>> sprintf( '%1d', matrix )
ans =
1101011

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