해당 강의는 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)
'공부 > 프로그래밍' 카테고리의 다른 글
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 |