fit data to distribution issue

Dear All;
I am trying to fit data to a normal distribution and plot pdf but pdf plot shows several lines , i do not know why it is coming , could you help.
figure is attached

5 Comments

sorry this figure
What code did you use?
Thank you Hughes for your cooperation
this is the code i use
input1=input(1:1704,:)
input1= smoothdata(input1,'gaussian',5);
input2=input(1705:3533,:)
input2= smoothdata(input2,'gaussian',5);
input3=input(3534:5250,:)
input3= smoothdata(input2,'gaussian',5);
figure(3);
plot(input1);
title('smoothData');
figure(4);
plot(input2);
title('smoothData');
figure(5);
plot(input3);
title('smoothData');
pd1 = fitdist(input1,'Normal')
pd2 = fitdist(input2,'Normal')
pd3 = fitdist(input3,'Normal')
y1 = pdf(pd1,input1);
y2 = pdf(pd2,input2);
y3 = pdf(pd3,input3);
plot(input1,y1,'LineWidth',2)
hold on
plot(input2,y2,'LineWidth',2)
plot(input3,y3,'LineWidth',2)
Can you provide the data also so we can replicate what you have done, ie the variable input
I extracted the related data part
Many thanks

Sign in to comment.

Answers (1)

Hi,
From the code and data provided on question and comment, I see that the output you are plotting is not in sorted order. So basically, what you are currently seeing is the connected line between all the data points which is going in the direction of how the points are arranged in the input vector. For seeing a continuous line either you can sort both the input1 and y1 before plotting (And similarly for other two pairs) or instead of line you can plot circles for every datapoint. This will give correct visualization. Both approaches can be done like below:
% Sorting the input1 and y1 simultaneously
[input1sorted, ind] = sort(input1);
y1sorted = y1(ind);
plot(input1sorted, y1sorted,'LineWidth',2);
% plotting only dot for each datapoints
plot(input1,y1,'o');

Categories

Asked:

on 28 Jul 2020

Answered:

on 6 Aug 2020

Community Treasure Hunt

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

Start Hunting!