728x90
반응형
아...............................
진짜 ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
별것도 아니면서 하루종일 고민하다가 결국엔 함수 만들었음.
%% 2의 보수
% a = matrix 형태로 된 binary 값
% factor = scale factor , 기본은 "1"
function value = twocomp (a ,factor)
% MSB(a(1), 최상위비트)가 0일 때 양수 이므로 그대로 10진수로 변환
if a(1) == 0
value = sum( a .* 2.^[ factor+length(a)-1 : -1 : factor ])
% MSB(a(1), 최상위비트)가 1일 때 음수
% 1의 보수를 취한 후 1을 더하고 음수를 취함.
else
a = (1 - a ) ;
a(length(a)) = a(length(a)) + 1 ;
a(1) = [] ;
value = - sum( a .* 2.^[ factor+length(a)-1 : -1 : factor ])
end
end
그리고 이런 식으로 사용함.
Crs= bi2de(SF(2, 84:-1:69)) ; % 2진수로 되어 있는 매트릭스(matrix)를 10진수로 변환 , 유의할 것은 뒤에 있는 비트부터 끌어와야 하기 때문에 "-1"씩 감소하고 있다는 거,
delta_n= twocomp(SF(2, 69:84) , -43).*pi ; % 2의 보수를 취한 것에 pi를 곱해줌. 여기서 '-43"의 의미는 scale factor가 2^(-43) 라는 의미. tow's Complement 는 앞에 있는 비트부터 끌어오게 정했음.
M= twocomp( [ SF(2, 107:114) SF(2, 121:144)], -31) .*pi ;
Cuc= twocomp( SF(2, 151:166), -29) ;
delta_n= twocomp(SF(2, 69:84) , -43).*pi ; % 2의 보수를 취한 것에 pi를 곱해줌. 여기서 '-43"의 의미는 scale factor가 2^(-43) 라는 의미. tow's Complement 는 앞에 있는 비트부터 끌어오게 정했음.
M= twocomp( [ SF(2, 107:114) SF(2, 121:144)], -31) .*pi ;
Cuc= twocomp( SF(2, 151:166), -29) ;
너무 허접하고 민망하지만, 누군가에게는 도움이 되길.
아. 그리고 매트랩에서 함수 쓰는 방법은, (이것도 방금 알았음 ;;; )
매트랩 파일 제일 위에
function value = 함수이름 ( 변수 , 등등 )
쓰고 저장한 후 같은 폴더 안에 두면 됨.
728x90
반응형
'Technology > by Lab' 카테고리의 다른 글
오일러 공식(Euler Formula) (0) | 2013.04.26 |
---|---|
MathType 사용법(단축키 정리) (2) | 2013.04.22 |
[매트랩 맨띵] 1행으로 되어 있는 매트릭스 일정한 간격으로 데이터 자르기 (0) | 2013.04.19 |
[매트랩 맨띵] 매트랩에 그리스문자, 화살표, 온갖 기호 그리기 (0) | 2012.12.27 |
[매트랩맨띵] 데이터 콤마(,)와 : , space 로 되어 있는 파일 불러오기 (0) | 2012.12.14 |
매트랩으로 한 폴더 안에 있는 데이터파일(텍스트 파일등)파일 합치기 (0) | 2012.12.14 |
매트랩 툴박스 사용 방법 (0) | 2012.12.14 |