how to convert integer array to one value??

 Akzeptierte Antwort

Guillaume
Guillaume am 3 Mär. 2015

3 Stimmen

x = [6 0 8 1 3 0];
validateattributes(x, {'numeric'}, {'integer', 'nonnegative', '<', 10});
y = polyval(x, 10)

4 Kommentare

Thank you Guillaume, Never knew about the validateattributes. I was thinking of doing it like:
y=str2num(num2str(x)');
Your approach works
>> str2num(sprintf('%1d',x))
ans =
608130
Abdalla Mansour
Abdalla Mansour am 3 Mär. 2015
thank you Guillaume , Joseph Cheng and Per isakson
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

0 Stimmen

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

Community Treasure Hunt

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

Start Hunting!

Translated by