1 常用命令

1.clc - 清除命令行窗口的所有数据。

2.clear - 清除工作区的所有的数据。

3.close - 关闭最后生成的一个图

4.close all - 关闭所有画的图。

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_数组

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)二维数组每一行的元素个数必须相等

运行结果如下

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_for循环_02

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       %打开网格

执行结果如下

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_matlab_03


python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_开发语言_04

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_数组_05

注意:加表头和X,Y说明时要跟在 plot 后面,在前面或者 隔了下一张图的设置内容都是不能显示的,

线条可以改变颜色,线状以及坐标点的形状,表格如下:

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_数组_06


plot还能设置坐标点的尺寸大小等,用来增加美观,一般用不到,有需要的朋友可以评论区留言

2 plotyy 函数

如果两个曲线需要放一起进行对比,则可以使用 plotyy 函数,这样把两个曲线放一起,有利于图形对照分析,经过优化,比上面直接放一起的要直观很多。

  1. plotyy(X1,Y1,X2,Y2)
    以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。
  2. plotyy(X1,Y1,X2,Y2,FUN1)
    以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。
  3. 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

运行结果如下(为了提高读者阅读质量,只放最后一个)

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_随机数_07


使用时可根据信号的特点来选择绘制方式

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

运行结果如下:

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_开发语言_08

python在一个for循环怎么在一张图上画多条折线的线 for循环用plot画图_matlab_09