concatenate all value in a matrix into one number
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?
0 commentaires
Réponse acceptée
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
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.
Plus de réponses (1)
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)
0 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!