How can I convert a matrix into a number?

26 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

Mischa Kim
Mischa Kim il 12 Mar 2014
Modificato: Mischa Kim il 12 Mar 2014
Use
matstr = strrep(num2str(matrix),' ','')
bin2dec(matstr)
ans =
107
  2 Commenti
Jaybee
Jaybee il 12 Mar 2014
this helps! thankyou! ive learned a new code :)
Sagar Damle
Sagar Damle il 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

Accedi per commentare.

Più risposte (1)

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

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by