How can I merge vector elements into a single number of type double?
Mostrar comentarios más antiguos
Hello,
How can I transform this vector:
v=[1 2 3]
into this scalar of type double?:
k=123
Thank you,
Lazaros.
Respuesta aceptada
Más respuestas (2)
x = [1,2,3];
d = x * 10 .^ (numel(x)-1:-1:0).' % dot product
Something like this?
A = [1 2 3];
joined = str2num(strjoin(num2cell(num2str(A(:))),''));
%>> joined = 123 (type double)
There are probably some more elegant solutions, but this is what I came up with for now.
3 comentarios
Guillaume
el 4 de Feb. de 2019
If you were going to go through strings and back, this would be simpler and faster:
str2num(char(A + '0'))
However, conversion of numbers to/from strings are slow (compared to just doing maths)
Guillaume
el 5 de Feb. de 2019
Indeed but that is most likely the case I assume.
A simpler, yet more generic solution, using number->string->number conversion:
str2num(strjoin(compose('%d', A), ''))
Categorías
Más información sobre Structures en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!