본문 바로가기

Software/MATLAB

(65)
MATLAB/Simulink 기동시 읽기나 쓰기 실패(에러)하는 경우 2009. 4. 15. 05:00 MATLAB/Simulink는 기본적으로 영문윈도에서 구동되도록 되어있다네요... 그래서인지 Simulink 화일의 쓰기 오류가 발생하는 경우는 컴퓨터이름이나 혹은 윈도 계정이 한글로 되어있는 경우 발생합니다. 보통 이 에러를 한번이상 만나서 고생하신 분들은 컴을 포맷할 때 컴퓨터 이름을 한글이 아니라 영어로 적게 되는데요. 만약 한글로 된 컴퓨터 이름이나 계정이라면 일단 bdclose; slCharacterEncoding('ISO-8859-1'); 이 명령어로 해결을 시도해봅니다. 단점은 다음에 컴을 포맷하고 다시 MATLAB을 설치할때 다시 저렇게 명령어를 계속 입력해야하는 불편함이 있지요. 그래서 그냥 컴퓨터 이름을 영문으로 하시는것도 좋습니다.^^ 그러나 가끔 이전에 한글로된 컴퓨터 이름이나 혹은..
미분(차분) 및 적분하기 2009. 4. 15. 04:56 MATLAB에서 미분(차분) 및 적분하는 간단한 코드를 소개하겠습니다. 어떤 형태든 계측기를 사용하든지 하면 ADC든 혹은 해당 계측기의 통신방법을 통해 데이터를 받게 됩니다. 이때, 미분-디지털값이 들어오니까 엄밀히 말하면 차분-과 적분을 수행하게 됩니다. 이를 MATLAB에서 간단히 수행해 보겠습니다. 먼저 대상 함수를 만들어야 할테니 간단히 y = sin(omega * t)를 대상으로 하겠습니다. 이때 샘플타임을 10ms로 하죠. ts = 0.01; t=0:ts:10; omega = pi/5; y = sin(omega*t); 이제 미분해 보겠습니다. MATLAB 명령어 " diff " 를 사용할 겁니다. 이는 단순히 앞선값에서 바로 뒤의 값을 빼는 것입니다. 차분을 할려면 그 상태에서 샘플 타임으로..
sptool을 이용한 간단한 필터적용법 (filter) 2009. 4. 15. 04:04 MATLAB에서 Filter를 간단히 적용할 수 있는 툴박스가 있습니다. 바로 sptool이죠. 필터적용을 간단히 할 거라면 꽤 유용한 툴입니다. 간단히 sptool 라고 command창에서 입력하면 되죠. 그러면 이와같은 창이 뜹니다. 별도의 신호를 등록해서 filtering할 테니, file 메뉴를 선택하고 import를 선택하면 와 같은 창이 뜨구요... 거기서 신호를 선택하고 그 신호의 샘플주파수를 설정해주면 됩니다. 지금은 그냥 툴박스가 제공하는 예제신호를 가지고 하죠 첫번째 그림의 첫번째 신호를 선택하면 view를 통해보면 신호가 보입니다. 이를 필터에 적용시키기 위해 표시된 edit를 누립니다. 물론 원하는 필터를 선택해야겠지만. 지금은 lowpass필터를 적용해보죠 edit를 누르면 나오는..
cftool 명령으로 Curve Fitting 간단히 하기 2009. 4. 15. 03:59 cftool 위의 저 명령이 curve fitting 툴박스 명령어입니다. 간단하게 사용할때 아주 유용하지요^^ 그냥 정말 초간단하게 커브피팅을 해 보겠습니다. 먼저 커브피팅할 예제가 있어야겠네요 시간간격마다 임의의 직선스러운 놈을 하나 만들겠습니다. 이제 "cftool"이라는 명령어를 사용합니다. 그러면 위와 같은 그림이 나타나는데 표시된 Data라는 버튼을 눌러 데이터셋을 등록시켜야합니다. 저기서 X, Y를 등록시키면 이렇게 됩니다. 그리고 Create data set 버튼을 눌러줍니다. 그러면 데이터가 등록된 것이 보일것입니다. 이제 저 창을 닫고 다시 본래의 창으로 가서 Fitting을 누릅니다. 새로 뜬 창에서 New Fit을 누릅니다. 그러면 어떤 방식으로 할 것인가가 나오는데 여러 복잡하고 ..
Figure에서 Legend사용시 아랫첨자 구현하기 2009. 4. 15. 03:49 먼저 위 그림을 보면 우상단에이렇게 그림이 나와있는 것을 볼것입니다. 아랫첨자죠?^^ 저 legend를 구현한 것이 아래 명령입니다. 별다른 설명이 없어도 바로 아실듯^^ legend('u_{psi}', 'u_{theta}', 'u_{phi}'); 이 글은 제 이전 홈페이지에 2008년 7월 6일 올렸던 내용입니다. 티스토리로 이전하면서 몇몇 글들을 이렇게 옮기고 있습니다.
Simulink에서 Annotation 사용하기 2009. 4. 15. 02:52 물론 안써도 무방하지만, 사용하면 폼도 나고 어떤 경우는 생각보다 편리하기 시뮬링크를 꾸밀수 있는 도구가 Annotation입니다. 시뮬링크에서 새창을 만들면 순백색 하얀 도화지가 나오죠...^^ 여기서 삽입할 장소를 선택하고 그 위치에서 더블클릭을 하면 이렇게 됩니다. 거기다 원하는 글자를 넣어보죠 그리고 오른쪽 버튼을 누르면 "Annotation Properties"라는 메뉴가 나타납니다. 그걸 눌러보면 이런 창이 하나 나오죠 "Drop Shadow"라는 기능은 이렇게 그림자 효과를 보여주고 "Font"라는 기능은 이름 그대로 폰트선택과 글자색 크기를 지정할 수 있습니다. 밑에 창에 명령어를 주면 Annotation을 클릭하면 실행되요. 워크스페이스에 실행된 결과가 보이죠?^^ 역시 뭐 꼭 필요한건 ..
EVAL (excutive string function) 함수 사용하기 2009. 4. 15. 02:32 만약 필요에 의해서 와 같이 코딩해야한다고 생각하자.물론 예제니까 간단하게 잡았지만, 100번째정도까지만 가도 기절할 지도 모를일이다물론 구조체나 배열 등등을 적절히 쓰면 잘 해결되는 경우도 있다.그러나 어쩔 수 없는 경우라는 것도 있고, 또 속도에 큰 문제가 없다면'eval '명령어로 간단히 해결할 방법이 있는데, 머리를 싸매고 앉아있을 필요는 없지 않겠나... 먼저 이해해야할 명령어가 num2str 이라는 명령어다. 이 명령어는 당연히 발음나는데로 읽어도 그 뜻을 대강 짐작할 수 있는데 num2str(i) 이렇게 입력하면 숫자를 문자처럼 인식하게 하는 명령어다 이제 아래 코드를 보자. 아까 의도가 A1어쩌고 부터 A9어쩌고까지 직접 코드를 편집하기는 꽤나 귀찮다는데서 출발했다.이제 eval 명령어를 ..
MATLAB에서 문자연산하기 2009. 4. 15. 02:29 MATLAB에서도 문자연산 기능이 있다.가끔 생각하기 귀찮을때, MATLAB한테 간단한 미적분 문제는 맡겨도 괜찮을 것이다.^^ 문자연산은 먼저문자연산에서 사용할 변수를 선언해야 한다. syms x y 이렇게 선언을 하자...평상시 MATLAB 연산과는 달리 세미콜론(;)이나 곰마(,)는 없다. 띄어쓰기만....^^ 그리고 미분(diff)이나 적분(int) 명령을 사용해주면 된다. 이 글은 제 이전 홈페이지에 2008년 6월 15일 올렸던 내용입니다. 티스토리로 이전하면서 몇몇 글들을 이렇게 옮기고 있습니다.

반응형