【matlab】绘图 离散数据--->连续函数

matlab绘图练习

  • 离散数据及离散函数
  • [对离散区间进行细划分 达到连续效果](#对离散区间进行细划分 达到连续效果)
  • [画plot(y)图 与 复数的应用](#画plot(y)图 与 复数的应用)

离散数据及离散函数

例1

matlab 复制代码
x1=[1 2 4 6 7 8 10 11 12 14 16 17 18 20]
y1=[1 2 4 6 7 8 10 10 8 7 6 4 2 1]
figure(1);
plot(x1,y1,'o','MarkerSize',15);
x2=1:20;
y2=log(x2);
figure(2);
plot(x2,y2,'o','MarkerSize',15);
  • 'o' 表示用圆形标记绘制散点图。

  • 'MarkerSize', 15 设置了散点的大小,数值 15 表示标记的尺寸较大。

    图形 1:一个对称的散点图,点的位置由 (x1, y1) 定义。

    图形 2:一个自然对数曲线的散点图,点的位置由 (x2, log(x2)) 定义。

例2

matlab 复制代码
x1=(0:12)*pi/6;
y1=cos(3*x1);
x2=(0:360)*pi/180;
y2=cos(3*x2);
figure(1);

subplot(2,2,1);
plot(x1,y1,'o','MarkerSize',3);
xlim([0 2*pi]);

subplot(2,2,2);
plot(x1,y1,'o','LineWidth',2);
xlim([0 2*pi]);

subplot(2,2,3);
plot(x2,y2,'o','MarkerSize',3);
xlim([0 2*pi]);

subplot(2,2,4);
plot(x2,y2,'o','LineWidth',2);
xlim([0 2*pi]);
  • x1=(0:12)*pi/6 :

    生成从 0 到 12 的整数,乘以 π/6,表示等间隔的点。

    • 0:12 生成从 0 到 12 的整数序列:[0, 1, 2, ..., 12]。
    • *pi/6 表示将每个点乘以 π/6,因此 x1 的值为: [0, π/6, π/3, π/2, ..., 2π]
  • y1=cos(3*x1):

    • 当 x1 = 0, y1 = cos(30) = cos(0) = 1
      当 x1 = π/6, y1 = cos(3
      π/6) = cos(π/2) = 0
      当 x1 = π/3, y1 = cos(3*π/3) = cos(π) = -1
      ...
  • x2=(0:360)*pi/180

    生成从 0 到 360 的整数,乘以 π/180,将角度从度数转换为弧度。

  • y2=cos(3*x2)

    表示 x2 的三倍角余弦值。

下面子图四个部分逻辑都是一样的。

  • subplot(2,2,2)
    激活第 2 个子图(右上角)
  • plot(x1,y1,'o','LineWidth',2)
    在第 2 个子图中绘制散点图。
    • 'o' 表示使用圆形标记绘制散点。
    • 'LineWidth', 2 设置点的边框线宽为 2。
  • xlim([0 2*pi])
    设置横坐标范围为 [0, 2π]。

对离散区间进行细划分 达到连续效果

例3

matlab 复制代码
x=-pi/2 : 0.01 : pi/2;
y=x+sin(x)+exp(x);
plot(x,y,'-ro');
grid on;
title('y的函数图像');
xlabel('x');
ylabel('y');
legend('y=x+sinx+e^{x}');
  • 表示从 − π 2 -\frac{\pi}{2} −2π到 π 2 \frac{\pi}{2} 2π 之间的点,步长为 0.01。

    通过对离散区间进行细化分,从而达到连续效果。

  • plot(x, y, '-ro')

    参数解释:

    • '-' 表示使用实线绘制曲线。
    • 'r' 表示曲线颜色为红色(red)。
    • 'o' 表示在曲线的每个数据点上添加圆形标记。
  • legend 函数为图像添加图例。

    参数 'y=x+sinx+e^{x}' 指定图例的内容。

画plot(y)图 与 复数的应用

例4

matlab 复制代码
x=-10:10;
y=x.^2;
figure(1);
subplot(1,3,1);
plot(x,y,'LineWidth',2);
subplot(1,3,2);
plot(y,'LineWidth',2);
xlim([1 length(y)]);
z=cos(-pi:pi/10:pi)+sqrt(-1)*sin(-pi:pi/10:pi);
subplot(1,3,3);
plot(z,'LineWidth',2);
  • y=x.^2

    x.^2 表示对 x 中的每个元素进行逐元素平方运算。

  • figure(1)

    这行代码创建或激活一个编号为 1 的图形窗口。如果编号为 1 的窗口已经存在,它将被激活而不是创建新的窗口。

  • subplot(1,3,1)

    这行代码将当前图形窗口分成 1 行 3 列的网格,并激活第 1 个子图区域。接下来的绘图命令会在这个区域内执行。

  • xlim([1 length(y)])

    这行代码设置第 2 个子图的x 轴范围为从 1 到 length(y),即从 1 到 21。

  • plot(y, 'LineWidth', 2);

    这行代码在第 2 个子图中绘制向量 y 的图形,默认假设横坐标为 1:length(y)。'LineWidth', 2 同样设置了线宽为 2。

  • z = cos(-pi:pi/10:pi) + sqrt(-1)*sin(-pi:pi/10:pi)

    这行代码创建一个复数向量 z,其中实部是 cos(-pi:pi/10:pi),虚部是 sin(-pi:pi/10:pi)。-pi:pi/10:pi 生成从 -pi 到 pi 的等差数列,步长为 pi/10。这段代码实际上生成了一个单位圆上的复数点。

  • plot(z, 'LineWidth', 2)

    这行代码在第 3 个子图中绘制向量 z 的图形。由于 z 是复数,plot 函数会将其实部作为 x 坐标,虚部作为 y 坐标进行绘制,形成一个单位圆。'LineWidth', 2 设置了线宽为 2。

相关推荐
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法
echoarts2 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix2 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题2 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说2 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
小莞尔2 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
我是菜鸟0713号2 天前
Qt 中 OPC UA 通讯实战
开发语言·qt
JCBP_2 天前
QT(4)
开发语言·汇编·c++·qt·算法
Brookty2 天前
【JavaEE】线程安全-内存可见性、指令全排序
java·开发语言·后端·java-ee·线程安全·内存可见性·指令重排序
百锦再2 天前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame