How to change a parameter during a plot?

I would like to plot a function but change a value part way through the plot, specifically in the code below, for values of (x<M) I would like to set R = RL and for values of (x>M) I would like to set R = RR. Any help appreciated. Thanks
x = 0:0.01:2;
M = 1;
R = 2;
LR = 0.25;
RL = (0.5 / LR) * R;
RR = (0.5 / (1 - LR)) * R;
y = exp(-(4* * *R* * .^2*(log(2))*(M - x).^2)/(M.^2));
plot(x,y)
grid on

 Respuesta aceptada

Paul
Paul el 16 de Mzo. de 2014
x = 0:0.01:2;
M = 1;
R = 2;
LR = 0.25;
RL = (0.5 / LR) * R;
RR = (0.5 / (1 - LR)) * R;
xL = x(x<M);
xR = x(x>=M);
y(x<M) = exp(-(4*RL.^2.*(log(2)).*(M - xL).^2)/(M.^2));
y(x>=M) = exp(-(4*RR.^2.*(log(2)).*(M - xR).^2)/(M.^2));
plot(x,y)
grid on
I also removed all the * in your function, not sure if there are supposed to be constants there or something.

Más respuestas (1)

Eliot
Eliot el 16 de Mzo. de 2014

0 votos

Thank you very much for taking the time to answer, I understand how it works now, the bit I was missing was splitting the x array.

1 comentario

Paul
Paul el 16 de Mzo. de 2014
Editada: Paul el 16 de Mzo. de 2014
There's also an easier method. You can make R a vector with the corresponding value for x<M and x>=M:
x = 0:0.01:2;
M = 1;
R = 2;
LR = 0.25;
RL = (0.5 / LR) * R;
RR = (0.5 / (1 - LR)) * R;
Rc(x<M) = RL;
Rc(x>=M) = RR;
y = exp(-(4.*Rc.^2.*(log(2)).*(M - x).^2)/(M.^2));
figure;
plot(x,y)
grid on
It's important to not forget to use the . for the factors involving Rc too.

Iniciar sesión para comentar.

Categorías

Preguntada:

el 16 de Mzo. de 2014

Editada:

el 16 de Mzo. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by