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

1 次查看(过去 30 天)
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.

回答(2 个)

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

请先登录,再进行评论。


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

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by