how to concatenate numbers from multiple cells into a single number?

2 views (last 30 days)
I have a set of data a = [1 0 1 0 0 1 1 1 0 0] and I would like to turn it into something like n = 1010011100
a is a row vector of varying dimension.

Answers (2)

Kai Domhardt
Kai Domhardt on 28 Mar 2018
This should do what you need:
n = sum(a.*10.^[length(a)-1:-1:0])
  2 Comments
Daniel Foster
Daniel Foster on 28 Mar 2018
Thanks,
I should have mentioned though that 'a' will have in the hundreds of elements. This code ceases to return the correct values for arrays larger than 50~ elements.
Kai Domhardt
Kai Domhardt on 28 Mar 2018
Then you can use David Fletchers answer by storing it as char string. But will not be able to losslessly store n as a numerical (assuming you would use uint64) if the length of a exceeds 20, since intmax('unit64') == 18446744073709551615 == 1.8447e+19

Sign in to comment.


David Fletcher
David Fletcher on 28 Mar 2018
You could store it as a char string
a=[1 0 0 0 0 1 1 0 1 0]
b=char(a+48)

Categories

Find more on Creating and Concatenating Matrices 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!