본문 바로가기

공부/프로그래밍

matlab programing 강의 180312

해당 강의는 2015b 버전을 기초로 합니다.


0:10 

length(ans)   

ans = 11 


0:10은 0부터 10까지 1의 간격을 가진 배열을 생성

ans는 가장 최근의 계산된 변수 값

length(변수)는 해당 변수의 길이를 계산


A' 이라고 하고 숫자를 넣으면 열로 받는다.


size(변수)는 벡터의 크기 행,열로 표시

1     2     3     4

3     4     5     8

>> size(ans)

ans =

     2     4


매틀랩의 인덱스는 1부터 시작


sin(30/180*pi) = sin(30도)

asin(0.5) = 0.5236 ≒ 1/6*pi


ans/pi*180

ans = 30.0000


명령어

cd - 해당 경로


배웠던 것을 이용해서 표 그리기


x=-2*pi:0.05:2*pi;

y=sin(x);

y2=sin(2*x);

plot(x,y)

title('sin(x)')

xlabel('rad')

ylabel('waveform')

grid                       

figure(2)

plot(x,y2)

title('f(x)=sin(2x)')

xlabel('rad')

ylabel('waveform')


plot(x,y) 표그리기

grid 좌표측 그리드 선 그리기

figure(2) 새로운 표창 띄우기

title = 표 상단에 제목짓기

xlabel = x축 이름 붙이기

ylabel = y축 이름 붙이기

gtext('sin(2x)') = 표 상 원하는 위치에 텍스트 삽입 가능


plot에는 여러 옵션을 붙일 수 있는데

e) plot( x, y, 'o' )


그 옵션은 이렇다 


          색                      점모양                  선 모양

           b     blue            .     point                -     solid

           g     green          o     circle               :     dotted

           r     red              x     x-mark             -.    dashdot 

           c     cyan            +     plus                --    dashed   

           m     magenta      *     star                (none)  no line

           y     yellow          s     square

           k     black           d     diamond

           w     white          v     triangle (down)

                                   ^     triangle (up)

                                   <     triangle (left)

                                   >     triangle (right)

                                   p     pentagram

                                   h     hexagram


표 창이 열렸을 때 해당 함수선의 특정 값을 알아내기 위한 명령어는

[a b] = ginput(개수)


표 창에서 직접 특정 위치를 찍어서 값을 알아낼 수 있다. 개수를 늘리면 여러번 클릭해 클릭한 만큼 값이 나온다.

 

2log10(60x+1) 그래프와 3cos(6x) 그리기


x=0:0.01:2;  u=2*log10(60*x+1);, v=3*cos(6*x);,plot(x,u), gtext('2log10(60x+1)'), figure(2), plot(x,v), gtext('v=3cos(6x)')


푸리에 급수를 그리기 


기본적으로 0과 1로 구성된 그래프 그리기

x=[-pi,0,0,pi];y=[-1,-1,1,1];plot(x,y,'r')


푸리에 급수는 여러번의 반복을 통하여 모양을 형성하지만 지금은 반복을 배우지 않았으니 몇개까지만 실행시켜보자.


2회

x1=-pi:0.01:pi;

y1=4/pi*(sin(x1)+sin(3*x1)/3);

plot(x1,y1,'g')


4회

x1=-pi:0.01:pi;

y1=4/pi*(sin(x1)+sin(3*x1)/3+sin(5*x1)/5+sin(7*x1)/7);

plot(x1,y1,'g')


여기서 매틀랩의 기능인 hold나 plot의 기능으로 표를 겹쳐서 볼 수 있다.

그럼 푸리에 급수가 0과 1로 구성된 그래프와 닮아가는 걸 눈으로 확인할 수 있다.

이를 짜보면


plot 이용

x=[-pi,0,0,pi];y=[-1,-1,1,1];plot(x,y,'r')

x1=-pi:0.01:pi;

y1=4/pi*(sin(x1)+sin(3*x1)/3);

x2=-pi:0.01:pi;

y2=4/pi*(sin(x1)+sin(3*x1)/3+sin(5*x1)/5+sin(7*x1)/7);

plot(x1,y1,'g',x2,y2,'r',x,y,'b')


hold 이용 - 홀드는 표를 띄울 때 기존 표를 유지시켜준다.

x=[-pi,0,0,pi];y=[-1,-1,1,1];plot(x,y,'r')

x1=-pi:0.01:pi;

y1=4/pi*(sin(x1)+sin(3*x1)/3);

x2=-pi:0.01:pi;

y2=4/pi*(sin(x1)+sin(3*x1)/3+sin(5*x1)/5+sin(7*x1)/7);

hold

plot(x1,y1,'g')

plot(x2,y2,'r')

plot(x,y,'b')


미리보는 반복문을 이용한 푸리에급수

n=100

x=-pi:0.01:pi;

y=0;

for i=1:n

    y=y+sin((2*i-1)*x)/(2*i-1);

end

y=4/pi*y;


plot(x,y)


728x90

'공부 > 프로그래밍' 카테고리의 다른 글

matlab(매틀랩) programing 강의 180319  (0) 2018.04.21
matlab(매틀랩) programing 강의 180314  (0) 2018.04.21
matlab programing 강의 180307  (0) 2018.03.29
[C++] 스왑 함수 로직  (0) 2017.11.20
[C++] 절대값 판별 함수  (0) 2017.11.20