1 常用命令
1.clc - 清除命令行窗口的所有数据。
2.clear - 清除工作区的所有的数据。
3.close - 关闭最后生成的一个图
4.close all - 关闭所有画的图。
2 语法用法
MATLAB的编辑语言虽然跟C语言有点像,但是还是有差别的
1.逗号和分号
变量之间可以用逗号,或者分号隔开,区别在与,使用逗号隔开,运行之后,该变量的值会在命令行窗口显示,分号隔开则不显示。
2.for 循环
for i = 0:10
i
end
for a = 10:-0.5:0
a
end
for i=0:0.123:10
i
end
for循环没有小括号和中括号,包含内容从for开始,到与之配对的end结束,0:10 包括 0和10以及中间的数,每次加一 ,前者必须小于后者。 当中间加了值时,此时中间的数就是步进值,可以是正,可以是负,也可以是小数,前后者值大小看中间的步进值来选择。当中间的小数无法刚好步进到两边的值时,则会步进到下次一步进会超出的值。就是值必须等于或者在两者之间,不可超出范围,例如第三个for循环到9.9630就结束了,因为下一次步进后的值已经超出范围。
3 if 语句
for i=0:10
if i == 6
continue;
elseif i == 8
a = i
else
i
end
end
if 没有小括号和中括号,内容从if 开始,到与之配对的 end 结束,elseif 是连一起,不能写成 else if。
4 while 循环
i = 0;
a = 0
% while 1 %无限循环
while i<10
i = i+1;
i
end
while 循环 也没有小括号和中括号,内容从while 开始,到与之配对的 end 结束。用法和C一样。
5 数组
close all
clc
clear
buff1 = [1 2 3 4 5 6 7 8 9 10 11 12]
buff2 = [1 2 3;4 5 6;7 8 9;10 11 12]
a = buff1(2) %第二个元素
b = buff2(2,2) %第二行第二列
数组的赋值决定数组的元素个数,buff1为一维数组 ,buff2 为 二维数组,也就是矩阵。行和行之间用分号隔开。这里需要注意两个点:
(1)数组的元素是从 1开始数的,而不是从 0开始
(2)二维数组每一行的元素个数必须相等
运行结果如下
3 画图
1 plot 函数
plot 函数是在平面内画线或者坐标点。
close all
clc
clear
% y = Asin(wt + p)
% w = 2 pi f
A=1; %幅度
f=10; %频率 Hz
w=2*pi*f; %角频率 rad/s
p=0; %相位 rad
%采样
T=0.5; %观测时间 s
fs = 20*f; %采样频率 Hz
d = 1/fs; %采样间隔 s
t1 = T/4:d:T; %离散时间t1
s1 = A*sin(w*t1+p); %正弦信号
y = -0.5+1*rand(50,1);
x = 0.1+0.45*rand(50,1);
x = sort(x);
y = sort(y);
figure(1) %图片1
plot(t1,s1,'-xg')
title('正弦函数')
xlabel('离散时间')
ylabel('正弦信号')
hold on %保留原图
plot(x,y,'-or')
figure(2)
plot(t1,s1,'-sg',x,y,'-dr')
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on %打开网格
figure(3)
subplot(2,2,1); %一共 2行*2列= 4张图片在一张图上,第一张图(第一行第一列)
plot(t1,s1,'-xg')
title('正弦函数')
xlabel('离散时间')
ylabel('正弦信号')
subplot(2,2,2); %一共 2行*2列= 4张图片在一张图上,第二张图(第一行第二列)
plot(x,y,'-or')
subplot(2,2,3); %一共 2行*2列= 4张图片在一张图上,第三张图(第二行第一列)
plot(t1,s1,'--cp')
subplot(2,2,4); %一共 2行*2列= 4张图片在一张图上,第四张图(第二行第二列)
plot(x,y,':yh')
title('随机数')
xlabel('x随机')
ylabel('y随机')
grid on %打开网格
执行结果如下
注意:加表头和X,Y说明时要跟在 plot 后面,在前面或者 隔了下一张图的设置内容都是不能显示的,
线条可以改变颜色,线状以及坐标点的形状,表格如下:
plot还能设置坐标点的尺寸大小等,用来增加美观,一般用不到,有需要的朋友可以评论区留言
2 plotyy 函数
如果两个曲线需要放一起进行对比,则可以使用 plotyy 函数,这样把两个曲线放一起,有利于图形对照分析,经过优化,比上面直接放一起的要直观很多。
- plotyy(X1,Y1,X2,Y2)
以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。 - plotyy(X1,Y1,X2,Y2,FUN1)
以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。 - plotyy(X1,Y1,X2,Y2,FUN1,FUN2)
以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1、FUN2指定的不同形式的两条曲线。其中fun的绘制方式包括plot,semilogx,semilogy,loglog等。
fun不选时默认使用plot
close all
clc
clear
% y = Asin(wt + p)
% w = 2 pi f
A=1; %幅度
f=10; %频率 Hz
w=2*pi*f; %角频率 rad/s
p=0; %相位 rad
%采样
T=0.5; %观测时间 s
fs = 20*f; %采样频率 Hz
d = 1/fs; %采样间隔 s
t1 = T/4:d:T; %离散时间t1
s1 = A*sin(w*t1+p); %正弦信号
y = -0.5+1*rand(50,1);
x = 0.1+0.45*rand(50,1);
x = sort(x);
y = sort(y);
figure(4)
plotyy(t1,s1,x,y)
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on
figure(5)
plotyy(t1,s1,x,y,'plot') %按plot形式绘制
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on
figure(6)
plotyy(t1,s1,x,y,'semilogx') %按semilogx形式绘制
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on
figure(7)
plotyy(t1,s1,x,y,'semilogy') %按semilogy形式绘制
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on
figure(8)
plotyy(t1,s1,x,y,'plot','loglog') %第1个按plot形式绘制,第2个按loglog形式绘制
title('正弦函数和随机数')
xlabel('离散时间')
ylabel('正弦信号')
grid on
运行结果如下(为了提高读者阅读质量,只放最后一个)
使用时可根据信号的特点来选择绘制方式
3 plot3 函数
plot3 是绘制三维空间图,特点是,X,Y,Z长度必须相同,如果要在同一组坐标轴上绘制多组坐标,请将 X、Y 或 Z 中的至少一个指定为矩阵,其他指定为向量。用法基本和 plot 一致。
close all
clc
clear
t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
% 生成一个向量 0 ~ 3 * pi , 步长 0.1
x = 0: 0.1 : 12 * pi;
y1 = zeros(size(x));
y2 = ones(size(x));
y3 = y2 ./ 2;
z = sin(x);
% 绘制三维线图
figure(9)
plot3(st,ct,t,'-pg')
title('三维曲线图')
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
grid on
figure(10)
plot3(x, y1, z, '-.sr', x, y2, z, '--dg', x, y3, z, '-hb');
title('三维正弦函数')
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
grid on
运行结果如下: