concatenate all value in a matrix into one number
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?
0 Commenti
Risposta accettata
Thorsten
il 17 Ott 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 Commento
Guillaume
il 17 Ott 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.
Più risposte (1)
Guillaume
il 17 Ott 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 Commenti
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!