How do I plot two functions at the same time
6 次查看(过去 30 天)
显示 更早的评论
Hi I am having a hard time plotting two functions at the same time and showing all the points.
This is the question I am trying to figure out.
The variance of a Bernoulli random variable is p(1 − p). Use a for loop, the var function, and your Bernoulli random variable generator to do the following: Vary p from 0 to 1 in steps of 0.05. For each value of p generate 1000 Bernoulli random variables and use the var command to compute the variance at each p value. Create figure(1) and plot your result along with the function p(1 − p) (on the same figure). Use the ’o’ marker for the points you calculated from your Bernoulli random variable generator and a black line for the curve p(1−p). Label the x-axis as ‘p’ and the y-axis as ‘variance’
This is what I have so far.
myBern=@(n,m,p)double(rand(n,m)<p)
myVar=@(p)p(1-p) plot(p,myVar(p)) n = 1; m = 1000;
for p=0:.05:1 myVar=@(p)p(1-p); x = myBern(n,m,p); disp('Variance') disp(var(x)) plot(p,var(x),'o')
end
The issues I am having are when I try to run this script for plot(p,myVar(p)) I keep getting the error "Subscript indices must either be real positive integers or logicals."
Error in @(p)p(1-p)
and in plot(p,var(x),'o') It is only plotting one point and I am not sure how to get it to plot the variance for all the points of p in the for loop.
I am also not really sure how to get the x-axis and the y-axis to stay labeled every time I run the code.
Any help or suggestions will be appreciated.
0 个评论
回答(1 个)
KSSV
2016-2-12
you p is taking value 0, how o can be a index? 0 cannot be a index. it Shall start with 1. You mat do the following: P = 0:0.05:1 ; Run another loop like;
for i = 1:length(p)
p = P(i) ;
end
Use this p where you want.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Scatter Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!