Matlab学习笔记

Basics

Define sequence

定义序列

1
2
3
4
a = 2:5; % meaning a=[2 3 4 5], size 1x4, row vector
a = [2 3 4 5]; % same as above
a = [2; 3; 4; 5]; % size 4x1, column vector
a = 2:0.5:5; % meaning a=[2 2.5 3 3.5 4 4.5 5], step 0.5

Use sequence element

序列元素使用

1
2
3
4
c = a(3); % get value of a(3), not a[3], c is a number
c = a(2:4); % c = [a(2) a(3) a(4)], c is a row vector
c = a’; % c is the conjugate transpose (共轭转置) of a, c is column vector
c = a.’; % c is the transpose(转置) of a

注意事项:

  • sequence元素编号从1开始
  • 命令行末尾加; 则不显示结果,否则显示结果

Operation

1
2
3
4
5
6
7
a = 2:5;
b = 9:12; % a, b should be same size
c = a+b;
c = a-b;
c = a.*b; % meaning c(i)=a(i)*b(i), c=a*b is not valid
c = a./b; % meaning c(i)=a(i)/b(i), c=a/b is not valid
c = a.^3; % meaning c(i)=a(i)^3, c=a^3 is not valid

注意事项:

  • .*,./,.^表示对向量中的元素做运算. 这三个运算符均为二元运算符,即2.^AA.^2是相同的
  • 若不带.则表示对向量以矩阵的方式做运算,即矩阵相乘,矩阵相除和矩阵的幂

Help

使用help指令可以查询命令的介绍信息

1
2
help stem
help plot

Functions

常用函数

1
2
3
4
5
6
7
8
9
10
11
12
% X横坐标,Y纵坐标。X和Y的大小相同
stem(X,Y) % 散点图
plot(X,Y) % 折线图

% B(微分方程X的系数),A(微分方程Y的系数)
% H(Z) = B / A ;
% x 系统的输入信号
zplane(B,A) % 零极点图
filter(B,A,x) % LTI系统,Return y(响应在时域上的分布)

freqz(B,A,'whole') % 'whole' 可改为n,代表了采样的数量
% 返回值【H,W】LTI系统函数H(z)在频域上的分布

1.画图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

% 同时画多个图
% 方法一,使用figure,会在不同的窗口显示
figure(1);
stem(X,Y); % or plot(X,Y)
title("figure 1");

figure(2);
stem(X2,Y2); % or plot(X,Y)
title("figure 2");

% 方法二,使用subplot,会在同一窗口显示
subplot(2,1,1)
plot(f,m)
title('Magnitude')
ax = gca;
ax.XTick = [15 40 60 85];

subplot(2,1,2)
plot(f,p*180/pi)
title('Phase')
ax = gca;
ax.XTick = [15 40 60 85];

%两者可以结合subplot是对figure的划分

%同一窗口同一区域画多个图
hold on
hold off
hold all