2016-09-30 1 views
2

d에있는 숫자 A의 쉼표 뒤의 숫자를보고하는 Matlab에서 차원 nx1의 열 벡터 t가 있습니다. 내가 1x1 두 번 A에서 기본으로 보고에 그것을 변환 싶어요. 나는 d=2d=3에 관심이있다.기본 d의 비 정수를 Matlab의 밑 10에있는 숫자로 변환

%d=3 
t=[0 2 0 2 2 0 0 2 0]'; %that is A=0.020220020 in base 3 
%d=2 
t=[0 1 1 1 0 0 0 1 0]'; %that is A=0.011100010 in base 2 
+0

감사입니다 두 배로. – user3285148

+0

그리고 base2dec은 정수입니다. 맞습니까? 여기서 나는 정수가 아니다. – user3285148

답변

1
A = base2dec(char(t(:).'+'0'), d)/d^numel(t); 

다음과 같이 작동한다 : 그들은 에 것처럼

  1. 가 소수 마크 왼쪽 숫자를 취급하므로에 정수을 한정 base d. 그렇게하면 base2dec을 변환에 사용할 수 있습니다 (이 함수에 대한 입력은 char이어야 함).
  2. d의 적절한 제곱으로 입력 숫자가 실제적으로 십진수 표의 이되도록 고려하십시오. 내가 두 번입니다 t로 시작하고 내가 원하는 : 주어진 예를 들어

,

t = [0 2 0 2 2 0 0 2 0]'; 
d = 3; 

결과는 나는 형식을 처리하는 방법을 모른다,

A = 
    0.255448864502362 
관련 문제