matlab正态分布拟合数据画图

本文介绍了如何生成风速数据,计算其概率分布直方图和累积分布函数,并使用正态分布进行数据拟合,展示了直方图和拟合曲线的可视化过程。

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

1

clear

clc

close all

% 生成风速数据

wind_speed_data = randn(1000, 1) * 5 + 10; % 生成均值为10,标准差为5的正态分布数据

% 计算概率分布直方图

hist_bins = linspace(min(wind_speed_data), max(wind_speed_data), 20);

hist_values = hist(wind_speed_data, hist_bins) / numel(wind_speed_data);

% 计算累积分布函数

cdf_values = cumsum(hist_values);

% 绘制概率分布直方图和累积分布图

figure;

% 绘制概率分布直方图

subplot(1, 2, 1);

bar(hist_bins, hist_values, 'hist');

title('风速概率分布直方图');

xlabel('风速');

ylabel('概率密度');

% 添加正态分布拟合曲线

mu = mean(wind_speed_data);

sigma = std(wind_speed_data);

pdf_values = normpdf(hist_bins, mu, sigma);

hold on;

plot(hist_bins, pdf_values, 'r-', 'LineWidth', 2);

legend('概率分布直方图', '正态分布拟合');

hold off;

% 绘制累积分布图

subplot(1, 2, 2);

plot(hist_bins, cdf_values, 'b-', 'LineWidth', 2);

title('风速累积分布图');

xlabel('风速');

ylabel('累积概率');

grid on;

2

clear

clc

close all

% 随机生成一些数据

data = randn(1000, 1) * 2 + 5; % 生成1000个均值为5,标准差为2的随机数

% 使用正态分布拟合工具进行拟合

pd = fitdist(data, 'Normal');

% 绘制直方图和拟合曲线

figure;

histfit(data, 20, 'normal'); % 20表示直方图的条数

title('正态分布拟合');

xlabel('数据值');

ylabel('频率');

% 显示拟合参数

meanValue = pd.mu;

stdValue = pd.sigma;

legend(['拟合曲线 (\mu = ' num2str(meanValue) ', \sigma = ' num2str(stdValue) ')']);

3

clear
clc
close all

% 生成0到20之间的随机数据
data = 20 * rand(1000, 1);

% 用正态分布函数进行拟合
[mu, sigma] = normfit(data);

% 可视化原始数据的直方图和正态分布的拟合结果
figure;

% 绘制原始数据的直方图
subplot(1, 2, 1);
hist(data, 20);
title('原始数据直方图');
xlabel('数值');
ylabel('频率');

% 绘制正态分布的拟合结果
subplot(1, 2, 2);
histfit(data, 20, 'normal');
title('正态分布拟合');
xlabel('数值');
ylabel('频率');

% 显示拟合参数
fprintf('正态分布拟合参数:\n');
fprintf('均值 (mu): %.4f\n', mu);
fprintf('标准差 (sigma): %.4f\n', sigma);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值