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.

回答(1 个)

KSSV
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.

类别

Help CenterFile Exchange 中查找有关 Scatter Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by