2010년 5월 22일 토요일
[Matlab] 메트릭스 역순으로 바꾸기
2010년 4월 3일 토요일
[Matlab] - 소수를 정수로 바꾸기!
2010년 2월 19일 금요일
[Matlab] - 매트랩 랜덤함수
매트랩은 랜덤함수가 많은 편인대... help를 쳐봐도 머가먼지 알수가...
그래서 쓸때마다 하나하나 정리를ㅋㅋㅋ 앞으로는 내 블로그를 보면 어떤 랜덤함수를 쓰면 좋을지 알수가ㅋㅋㅋ
1. rand(m,n)
우선 rand(m,n)제일 간단한거
만들어지는 랜덤수의 범위는 [0,1]이고 m*n개만큼 만든다
랜덤수는 평균분포(Uniformly Distributed)에 의해서 만들어진다( X ~ U(0,1) )
즉 rand(3,4)를 실행하면 랜덤수 12개를 만든다.
하나 만들구 싶으면 rand(1,1)실행하면 되구ㅋㅋㅋ
2.randn(m,n)
mean = 0, variation은 1인 normal distribution 을 따르는 랜덤수를 뽑는다. 즉 X~N(0,1),그렇다 정규분포다!
그럼 X~N(mean, "standard deviation"^2) 은 어떻게 구할까?
그냥 x = mean + "standard deviation" * randn(m,n);
이렇게 구하면 된다
3.randperm(k)
이 함수는 1~k까지의 정수를 랜덤하게 배열해준다
만약에 1~k중에 임의m게의 숫자를 중복되지 않게 뽑고 싶다면 randperm(k)를 하고 그 결과의 1에서 m까지 값을 쓰면 된다.
2010년 2월 5일 금요일
[Matlab] - 각종 Matrix 만들기
[Matlab] - 다항식 계산 함수들
2009년 11월 23일 월요일
[Matlab] - 매트릭스 괄호의 사용법
2009년 9월 28일 월요일
[Matlab] - 이진수 함수
메트랩에서 10진수를 2진수로 바꾸려면
b = dec2bin(d)
를 쓰면 되고 반대로 하려면
d = bin2dec(b)
이렇게 하면 된다.
이렇게 해서 얻어낸 b는 string이다(아마 아스키 코드였던거 같다)
즉 b(1) = '0' 이면
t = b(1) + 1 - 1
이라는 명령을 실행하면
t = 48
이라고 나온다.(결국엔 C랑 별반 다를게 없었군...)
그리고 쓰기 불편한게...b(1)은 첫번쩨 자리가 아니라 제일 높은 자리이다. 제일 낮은 자리는 string b의 제일 마지막에 있다....(제기랄) 그럼 제일 마지막 자리는 어떻게 찾아야 할까?
b(numel(b))
가 제일 마지막 자리다.
numel(b)
가 b의 자릿수를 구하는 함수인것이다.
그럼 이정도만 알면 2진수는 문제 없겠지?ㅋ
[Matlab] - 오류 Subscript indices must either be real positive integers or logicals 해결방법
오늘 매트랩으로 프로그래밍 하다가
Subscript indices must either be real positive integers or logicals
라는 오류가 떴다...
어떻게 해도 해결이 안되는...
구글형님께 물어보니....
이 오류는 매트릭스 처리할때 m(i,j)에서 i나 j가 1이상의 숫자가 아닌경우에 생긴다고 한다.
그니까 m(0,0)을 치면 이 오류가 뜨게 되는거!
근대 난 이 경우가 아니었는대...
알고보니까 나는 zeros(m) (여기서 m은 매트릭스)라는 어이없는실수를 범하고 말았다...ㅡㅡ;;;;
근대 원래 이런 실수를 하면
Size vector must be a row vector with real elements.
이 애러가 떠야하는건대... 여러 함수들을 걸쳐쓰는 바람에 다른 이상한 애러 매시지가 뜬거 같다...음...
해결방법은 좀 귀찮아도
zeros(size(m,1),size(m,2)로 쓰는거!ㅋㅋ
역시...매트랩도 아주 완전하지는 못한건가...
앞으론 이런실수는 절대! 하지 말아야지ㅋ