concatenate all value in a matrix into one number

1 次查看(过去 30 天)
if I have a matrix [1 2 3 4], is there a quick and easy way to obtain 1234 ?

采纳的回答

Thorsten
Thorsten 2016-10-17
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 个评论
Guillaume
Guillaume 2016-10-17
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.

请先登录,再进行评论。

更多回答(1 个)

Guillaume
Guillaume 2016-10-17
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)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by