Filter löschen
Filter löschen

how to convert integer array to one value??

21 Ansichten (letzte 30 Tage)
Abdalla Mansour
Abdalla Mansour am 2 Mär. 2015
Kommentiert: Guillaume am 3 Mär. 2015
hi , i want to convert array such as x=[1;2;3;4;5] to one value as y=12345

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

rantunes
rantunes am 3 Mär. 2015
Bearbeitet: Guillaume am 3 Mär. 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 Kommentare
rantunes
rantunes am 3 Mär. 2015
sorry for the one line copy-paste ;)
Guillaume
Guillaume am 3 Mär. 2015
Fixed the formatting for you.
Your code is what polyval does.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by