concatenate all value in a matrix into one number

1 vue (au cours des 30 derniers jours)
Terek Li
Terek Li le 17 Oct 2016
Commenté : Guillaume le 17 Oct 2016
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?

Réponse acceptée

Thorsten
Thorsten le 17 Oct 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 commentaire
Guillaume
Guillaume le 17 Oct 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Guillaume
Guillaume le 17 Oct 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)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by