如何将不同采样的曲线放在一个xy图中

简言

在工作中,处理数据的过程中经常遇到数据点做曲线图的需求,需要将一条或多条曲线在一张图上展示,曲线由于其定义不同,可能出现采样点不一致,这就无法直接传数据至控件中,下面将记录如何将多条曲线数据处理后,显示在同一个图上。

方式1

请添加图片描述

方式2

在这里插入图片描述

结果

在这里插入图片描述

在MATLAB程序中将不同采样率的曲线放在同一张图中,可以使用MATLAB自带的subplot函数或者plot函数的hold on选项。 1. 使用subplot函数 subplot函数可以在同一张图中绘制多个子,因此可以使用subplot函数将不同采样率的曲线放在同一张图中。代码示例: ```matlab % 生成原始信号 fs = 1000; % 采样率 t = 0:1/fs:1-1/fs; % 时间轴 x = sin(2*pi*100*t); % 100Hz正弦波信号 % 绘制不同采样率的曲线 fs_list = [500, 200, 100]; % 不同采样率列表 figure; for i = 1:length(fs_list) fs_i = fs_list(i); t_i = 0:1/fs_i:1-1/fs_i; % 时间轴 x_i = sin(2*pi*100*t_i); % 100Hz正弦波信号 subplot(length(fs_list), 1, i); % 绘制子 plot(t_i, x_i); title(['Fs = ', num2str(fs_i)]); xlabel('Time (s)'); ylabel('Amplitude'); end ``` 这段代码生成了一个100Hz正弦波信号,并绘制了3个不同采样率下的曲线,使用subplot函数将3个曲线放在同一张图中。其中,subplot函数的第一个参数表示总行数,第二个参数表示总列数,第三个参数表示当前子的序号。 2. 使用hold on选项 plot函数的hold on选项可以让多个形在同一张图中显示。代码示例: ```matlab % 生成原始信号 fs = 1000; % 采样率 t = 0:1/fs:1-1/fs; % 时间轴 x = sin(2*pi*100*t); % 100Hz正弦波信号 % 绘制不同采样率的曲线 fs_list = [500, 200, 100]; % 不同采样率列表 figure; hold on; for i = 1:length(fs_list) fs_i = fs_list(i); t_i = 0:1/fs_i:1-1/fs_i; % 时间轴 x_i = sin(2*pi*100*t_i); % 100Hz正弦波信号 plot(t_i, x_i); title('Different Sampling Rates'); xlabel('Time (s)'); ylabel('Amplitude'); end legend('Fs = 500', 'Fs = 200', 'Fs = 100'); ``` 这段代码与前面的代码类似,生成了一个100Hz正弦波信号,并绘制了3个不同采样率下的曲线,使用plot函数的hold on选项将3个曲线放在同一张图中,最后使用legend函数添加例。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值