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

2 Ansichten (letzte 30 Tage)
Daniel Foster
Daniel Foster am 28 Mär. 2018
Kommentiert: Kai Domhardt am 28 Mär. 2018
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.

Antworten (2)

Kai Domhardt
Kai Domhardt am 28 Mär. 2018
This should do what you need:
n = sum(a.*10.^[length(a)-1:-1:0])
  2 Kommentare
Daniel Foster
Daniel Foster am 28 Mär. 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 am 28 Mär. 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

Melden Sie sich an, um zu kommentieren.


David Fletcher
David Fletcher am 28 Mär. 2018
You could store it as a char string
a=[1 0 0 0 0 1 1 0 1 0]
b=char(a+48)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by