Azzera filtri
Azzera filtri

how to convert integer array to one value??

21 visualizzazioni (ultimi 30 giorni)
hi , i want to convert array such as x=[1;2;3;4;5] to one value as y=12345

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

rantunes
rantunes il 3 Mar 2015
Modificato: Guillaume il 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 Commenti
rantunes
rantunes il 3 Mar 2015
sorry for the one line copy-paste ;)
Guillaume
Guillaume il 3 Mar 2015
Fixed the formatting for you.
Your code is what polyval does.

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by