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) ')']);
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);