Effacer les filtres
Effacer les filtres

how to convert integer array to one value??

21 vues (au cours des 30 derniers jours)
Abdalla Mansour
Abdalla Mansour le 2 Mar 2015
Commenté : Guillaume le 3 Mar 2015
hi , i want to convert array such as x=[1;2;3;4;5] to one value as y=12345

Réponse acceptée

Guillaume
Guillaume le 3 Mar 2015
x = [6 0 8 1 3 0];
validateattributes(x, {'numeric'}, {'integer', 'nonnegative', '<', 10});
y = polyval(x, 10)
  4 commentaires
Abdalla Mansour
Abdalla Mansour le 3 Mar 2015
thank you Guillaume , Joseph Cheng and Per isakson
Guillaume
Guillaume le 3 Mar 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.

Connectez-vous pour commenter.

Plus de réponses (1)

rantunes
rantunes le 3 Mar 2015
Modifié(e) : Guillaume le 3 Mar 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 commentaires
rantunes
rantunes le 3 Mar 2015
sorry for the one line copy-paste ;)
Guillaume
Guillaume le 3 Mar 2015
Fixed the formatting for you.
Your code is what polyval does.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by