MATLAB标记点

本文介绍了如何使用Matlab生成随机时程信号,计算其功率谱密度,并通过findpeaks函数找出峰值点。通过阈值确定法,作者提供了峰值频率的估计方法,展示了如何在时频图上标注这些频率点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

% clear

% clc

% close all

% % 生成随机时程信号

% fs=100;

% signalLength = fs*60*2;

% time = 1/fs:1/fs:signalLength/fs;

% randomSignal = 2*sin(2*pi*0.5*time)+3*cos(2*pi*1*time)+randn(1, signalLength);

function [frequencyPP]=funct_peak(signal,Hz)

% 生成随机时程信号

fs=Hz;

randomSignal=signal;

signalLength = length(randomSignal);

time = 1/fs:1/fs:signalLength/fs;

%功率谱密度图

pwel.window=1024*9;

pwel.noverlap=pwel.window/2

[pxx,f]=pwelch(randomSignal,pwel.window,pwel.noverlap,[],fs);

plot(f,10*log10(pxx))

xlim([0 2])

% 寻找峰值点

threshold = 20; % 定义阈值,即前后20个点的纵坐标差值的阈值

[pks, locs] = findpeaks(10*log10(pxx), 'MinPeakHeight', threshold);

% 标识峰值点

hold on

scatter(f(locs), pks, 'r', 'filled')

% 在每个峰值点的位置添加文本标签

for i = 1:length(locs)

text(f(locs(i)), pks(i), sprintf('%.2f', f(locs(i))), 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'center');

frequencyPP(i)=round(f(locs(i)),3);,

end

hold off

MATLAB中,可以使用scatter函数绘制带有标记点的散点图。如果想要将标记点按照不同的类别进行归类并使用不同的颜色进行标记,可以按照以下步骤进行操作: 1. 定义数据点的坐标和类别。假设我们有10个数据点,每个数据点有x、y坐标和类别信息,可以定义一个大小为10x3的矩阵,其中每行分别表示一个数据点的x、y坐标和类别信息。 ```matlab data = [1, 2, 1; 2, 4, 2; 3, 6, 2; 4, 8, 1; 5, 10, 3; 6, 12, 1; 7, 14, 3; 8, 16, 2; 9, 18, 3; 10, 20, 1]; ``` 2. 针对不同的类别,设置不同的颜色和标记点形状。可以定义一个颜色和标记点形状的映射表,使用不同的颜色和标记点形状来代表不同的类别。以下是一个例子: ```matlab color_map = containers.Map({1,2,3},{'r', 'b', 'g'}); % 定义颜色映射表 marker_map = containers.Map({1,2,3},{'o', 's', '+'}); % 定义标记点映射表 ``` 在这个例子中,我们使用containers.Map来定义了两个映射表,一个是颜色映射表,另一个是标记点映射表。其中,{1,2,3}表示类别信息,{'r', 'b', 'g'}表示颜色信息,{'o', 's', '+'}表示标记点形状信息。 3. 绘制散点图。可以使用scatter函数绘制散点图,并根据类别信息设置不同的颜色和标记点形状。以下是代码示例: ```matlab figure; % 新建一个图表 hold on; % 开启绘图模式 for i = 1:size(data, 1) x = data(i, 1); y = data(i, 2); c = data(i, 3); color = color_map(c); marker = marker_map(c); scatter(x, y, 50, color, marker, 'filled'); end xlabel('x'); % 设置x轴标签 ylabel('y'); % 设置y轴标签 title('Scatter Plot'); % 设置标题 legend('Class 1', 'Class 2', 'Class 3'); % 显示图例 ``` 在这个程序中,我们首先使用figure函数新建了一个图表,并使用hold on命令开启了绘图模式。然后,使用for循环遍历了所有的数据点,获取了其x、y坐标和类别信息,根据类别信息从颜色和标记点映射表中获取了对应的颜色和标记点形状,并使用scatter函数绘制了相应的散点图。最后,我们使用xlabel、ylabel、title和legend函数设置了图表的标签和标题,并显示了图例。 运行这个程序后,MATLAB会弹出一个窗口,显示绘制出的散点图。可以看到,不同的类别使用了不同的颜色和标记点形状进行标记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值