concatenate all value in a matrix into one number
6 views (last 30 days)
Show older comments
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?
0 Comments
Accepted Answer
Thorsten
on 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 Comment
Guillaume
on 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.
More Answers (1)
Guillaume
on 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 Comments
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!