concatenate all value in a matrix into one number

7 visualizaciones (últimos 30 días)
Terek Li
Terek Li el 17 de Oct. de 2016
Comentada: Guillaume el 17 de Oct. de 2016
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?

Respuesta aceptada

Thorsten
Thorsten el 17 de Oct. de 2016
This works even if the numbers are not single digits, i.e., in in {1,2,...,9}
v = [10 20 4];
num = sscanf(sprintf('%d', v), '%f')
  1 comentario
Guillaume
Guillaume el 17 de Oct. de 2016
Indeed, however if they are single digits (as I assumed), conversion to string and back to number is going to be several order of magnitude slower than simple mathematical manipulation.
Not that it matters for such trivial code.

Iniciar sesión para comentar.

Más respuestas (1)

Guillaume
Guillaume el 17 de Oct. de 2016
v = [1 2 3 4];
assert(all(v >= 0 & v < 10 & mod(v, 1) == 0), 'elements of v are not single digits');
sum(10.^(numel(v)-1:-1:0) .* v)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by