how can i get 6 gaussian distribution?

5 次查看(过去 30 天)
I'd like to draw a histogram of six Gaussian distributions that have six local max values as the average value, over the histogram. I also want to know how to figure out the initial estimates of the mean value, standard deviation, and height of the Gaussian distribution.
  1 个评论
Jon
Jon 2023-6-8
Please write some code and then ask for help regarding the code you have written

请先登录,再进行评论。

回答(2 个)

Kautuk Raj
Kautuk Raj 2023-6-13
To draw a histogram of six Gaussian distributions with six local max values as the average value, we can use the histogram function in MATLAB with the Normalization and BinWidth options. This is an example implementation:
% Define the x values for the histogram
x = linspace(-10, 10, 1000);
% Define the parameters for the six Gaussian distributions
means = [-8, -5, -2, 2, 5, 8];
stds = [1, 1.5, 2, 2.5, 3, 3.5];
heights = [0.05, 0.1, 0.2, 0.3, 0.4, 0.5];
% Create a matrix to store the y values for each Gaussian distribution
y = zeros(length(x), length(means));
% Calculate the y values for each Gaussian distribution
for i = 1:length(means)
y(:, i) = heights(i) * exp(-(x - means(i)).^2 / (2 * stds(i)^2));
end
% Create a histogram of the data
figure;
histogram(x, 'BinWidth', 0.1, 'Normalization', 'pdf', 'EdgeColor', 'none');
% Overlay the Gaussian distributions on the histogram
hold on;
plot(x, y, 'LineWidth', 2, 'Color', 'r');
The resultant plot looks like this:

Muskan
Muskan 2023-6-13
Hi Dongchan,
As per my understanding of the question, to draw a histogram of six Gaussian distributions, you can use the "histfit()" function in MATLAB.
The "mean" and "std" functions in MATLAB can be used to estimate the initial mean value and standard deviation of a Gaussian distribution based on a set of data.
You can refer to the following documentation for more information.
Thanks

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by