how to convert integer array to one value??

23 visualizaciones (últimos 30 días)
Abdalla Mansour
Abdalla Mansour el 2 de Mzo. de 2015
Comentada: Guillaume el 3 de Mzo. de 2015
hi , i want to convert array such as x=[1;2;3;4;5] to one value as y=12345

Respuesta aceptada

Guillaume
Guillaume el 3 de Mzo. de 2015
x = [6 0 8 1 3 0];
validateattributes(x, {'numeric'}, {'integer', 'nonnegative', '<', 10});
y = polyval(x, 10)
  4 comentarios
Abdalla Mansour
Abdalla Mansour el 3 de Mzo. de 2015
thank you Guillaume , Joseph Cheng and Per isakson
Guillaume
Guillaume el 3 de Mzo. de 2015
If you're going to go through string conversion, this should be the fastest:
y =str2num(char(x + '0'))
That is add ASCII value of '0' to each number and convert the string back to number.
conversions to / from strings are very slow compared to just multiplications / additions, so my initial solution is probably the most efficient.

Iniciar sesión para comentar.

Más respuestas (1)

rantunes
rantunes el 3 de Mzo. de 2015
Editada: Guillaume el 3 de Mzo. de 2015
Hey,
You can also use another (more mathematical) approach:
x = [1;2;3;4;5];
y = 0;
for i = 1:length(x)
y = y + (10^(i-1))*x(length(x)+1-i);
end
Greets
  2 comentarios
rantunes
rantunes el 3 de Mzo. de 2015
sorry for the one line copy-paste ;)
Guillaume
Guillaume el 3 de Mzo. de 2015
Fixed the formatting for you.
Your code is what polyval does.

Iniciar sesión para comentar.

Categorías

Más información sobre Cell Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by