1.1 Main Window
matlab은 행렬로 이루어져 있어서 한개의 값을 저장하면 1x1 double형으로 저장된다.
그냥 저장할경우 모든 변수들이 자동으로 double 으로 저장됨
메모리의 효율적 사용은 불가하지만 , 편리하게 사용할 수 있다.
1.2 help window
도움말 창, 도움말 버튼, f1으로 원하는걸 알아볼 수있다. (함수나 문서)
명령 창에 [help index]를 입력하면 index의 정보 출력
ex :
>> help log
log - 자연 로그(Natural Logarithm)
배열 X의 각 요소에 대한 자연 로그 ln(x)를 반환합니다.
Y = log(X)
참고 항목 log1p, log2, log10, exp, logm, reallog, loglog, semilogx,
semilogy
log에 대한 문서
1.3 m-file의 작성 및 실행
① [새로 만들기] → [스크립트] 선택 또는 ctrl+N
② 편집기 창이 뜨면 m-file을 작성한다. [보기] a=10; b=log(a)
③ 알맞은 이름으로 저장한다. 숫자로 시작하거나 숫자만으로 된 이름은 불가! [보기] ex1.m
④ f5 또는 상단 메뉴의 ▶아이콘으로 실행한다. 명령 창에서 파일 이름을 입력하여 실행할 수도 있다. ⑤ 수행한 결과가 명령 창에 나타난다. 마지막에 ‘ ; ’을 붙이지 않은 명령 의 결과를 보여줌.
더 많은 소숫점 뒤 자리수를 알고싶을때는 작업공간에서 더블클릭!
2.1 Variables 변수
■ 변수 이름은 알파벳으로 시작하고, 알파벳과 ‘ _ ’ 또는 숫자로 구성 (숫자로 시작하면 안됨)
■ array index는 1부터 시작한다. (0부터 시작하는 C 언어와는 다름)
■ array 변수
a(1)=1; a(2)=2; a(3)=3; a(4)=4; a(5)=5;
a=[1 2 3 4 5];
a=1:5; % m:n은 m부터 n까지 1의 간격으로 배정 (주석은 %)
cf.) a=[1 1.5 2 2.5 3 3.5 4 4.5 5];
⇒ a=1:0.5:5; % m:k:n은 m부터 n까지 k의 간격으로 배정
■ 행렬 변수
a=[1 2 3 ; 4 5 6 ; 7 8 9];
세미콜론은 행과 행을 구분하는 역할
a =
1 2 3
4 5 6
7 8 9
원하는 원소의 값 출력
a(2,3)
ans =
6
2.2. Calculations: Operators and Functions
행렬 곱셈의 원칙
앞에 곱하는 행렬의 열 == 뒤에곱하는 행렬의 행이 같아야만 곱셈 가능
+ - * (행렬곱셈) / ^ (지수) ' (전치 또는 켤레 전치)
.* (array 곱셈) ./ (array 나눗셈) .^ (array 지수)
서로다른 행렬의 같은 위치에 있는 원소들끼리 곱하고(나누고) 싶을때 점을 찍고 곱하기(나누기)를 해야함 .*
➥ 반드시 두 array의 크기가 같아야 한다
[보기] a=1:5; b=2:6; c=a.*b; ⇒ c=[2 6 12 20 30] c=a*b
% error 발생
■ Elementary math functions (>> help elfun )
abs 절댓값
sqrt 루트
exp e의 지수
sin ,cos, log, log10
영어로 가득해.. ㅜ
■ Elementary matrix
zeros(m,n) m×n all-zero-matrix
ones(m,n) m×n all-one-matrix
eye(m,n) m×n identity matrix
rand(m,n) m×n uniformly distributed random matrix
randn(m,n) m×n normally distributed random matrix
>> zeros(2,3)
ans =
0 0 0
0 0 0
>> ones(2,3)
ans =
1 1 1
1 1 1
>> eye(2,3)
ans =
1 0 0
0 1 0
>> rand(2,3)
ans =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
>> randn(2,3)
ans =
-0.4336 3.5784 -1.3499
0.3426 2.7694 3.0349
[보기] F=5*ones(3,3);
F =
5 5 5
5 5 5
5 5 5
Lesson 3 Plotting: Continuous and Discrete Signals
3.1. Continuous Signal
배운거 한번 그려보기
t = 0:0.1:30 ; %시간변수 설정 continuous처럼 보이게 , 간격이 작으면 작을수록 t가 늘어나서 너무크면 속도 느려질수도..?
x = exp(-.1*t).*sin(2/3*t) ; %array와 array값을 곱할때 .* 를 사용함
plot(t,x) % 가로,세로축 변수의 값으로 그림을 그려라 라는뜻
한번에 주석처리 ctrl + r
해제 ctrl+t
axis([0 30 -1 1]) % 축을 [] 대괄호 영역내에서 그릴 수 있도록 수를 지정
grid on % 안내선
xlabel('Time (sec)') % 가로축에 글씨를 적어준다
ylabel('x(t)') %세로축에 글씨를 적어준다
title('Continuous Signal') %제목을 적어준다
<그래프>
■ plot 함수 (>> help plot )
∙ 사용법: plot(x_변수, y_변수, 'linespec');
∙ linespec: line specificatio
선을 어떠한 방법으로 그릴지 자세하게 설정가능
ex: 빨갛고 동그란 모냥을 추가
■ 그림 창의 메뉴에서 화살표 아이콘을 클릭한 뒤, 그래프 선이나 축을 클릭한다.
마우스 오른쪽 버튼을 누르고 다양한 메뉴를 선택하여 그래프 와 축을 변화시킬 수 있다.
속성 인스펙터를 열어서 원하는대로 조절할 수있는 다양한 메뉴들이 있음.
3.2. Discrete Signal
discrete.m
특정시점에서만 값이 존재해서, 점을 찍고
잘 보이게 선을 내려 그음.
■ stem 함수 (>> help stem ) <아래로 선그려주는
∙ 사용법: stem(x_변수, y_변수, 'linespec', 'filled');
∙ filled: with filled markers (이 항목이 없으면 빈 동그라미로 나타남)
n = -2:6 ;
x = [0 0 1 2 1 0 -1 0 0] ;
stem(n,x,'ro','filled') ; %동그라미를 채워줌
xlabel('n') ;
ylabel('x[n]') ;
3.3. Sampled Signal
% sampled.m
샘플링된 시그널
'✍2021,2022 > MATLAB' 카테고리의 다른 글
드디어~ Convolution (0) | 2021.10.03 |
---|---|
2. 실습 (0) | 2021.09.23 |