2014-09-16 3 views
1

MATLAB에서 벡터의 내용을 단일 정수로 반환하려면 어떻게해야합니까? 예를 들어 a = [ 1 2 3 4 5 6 7 8 9 ] 인 경우 숫자 123456789을 반환하는 함수가 필요합니다.벡터 요소를 단일 정수로 반환

거의 모든 부분을 쥐어 짜 내고 있지만!

현재의 해결책은 sprintf을 사용하여 '%i'의 형식으로 벡터를 읽은 다음 str2double을 사용하여 숫자로 변환하는 것입니다. 몇 시간 만 사용하면 좋지만 100000 번 사용하면 상당히 비효율적입니다.

답변

3

당신은

result = a*10.^(numel(a)-1:-1:0).'; 

또는 동등

result = sum(a.*10.^(numel(a)-1:-1:0)); 

그들은 동등하게 빠른에 대한 것으로 보인다 사용할 수 있습니다.

1

str2num 한 자리수의 벡터와 같이 입력 num2str 가정 하나의 접근법 -

str2num(num2str(a,'%1d')) 

또는

str2num(char(a+48)) %// Thanks to Luis! 

또는

str2double(char(a+48))