Asked by John
on 22 Jan 2015

In each figure I have a variable number of plots. However, in the legend I have all the plots. For instance, in the very first figure, I would want only one plot. How can I adjust this?

clc;

clear all;

a=[1/2,1/3,1/4];

l=-0.1:.05:.1;

p = @(x,a,l) 1/3.*(exp(x.^(a))-1)./(exp(x.^(a))+1) + l;

x=linspace(0,.2,101);

for k2 = 1:length(l)

figure(k2)

for k1 = 1:length(a)

plot(x, p(x,a(k1),l(k2)))

hold all

ar{k1} = sprintf('a = %s',rats(a(k1),3));

end

grid

axis([0 .21 0 .25])

hold off

legend(ar, 'Location','best')

end

Answer by Image Analyst
on 22 Jan 2015

Accepted Answer

You need to check if any p are greater than 0. Those elements < 0 would be not shown since you've set the min y value to 0.

clc;

clear all;

a=[1/2,1/3,1/4];

l=-0.1:.05:.1;

p = @(x,a,l) 1/3.*(exp(x.^(a))-1)./(exp(x.^(a))+1) + l;

x=linspace(0,.2,101);

for k2 = 1:length(l)

figure(k2)

legendCounter = 1;

for k1 = 1:length(a)

pValues = p(x,a(k1),l(k2));

plot(x, pValues)

drawnow;

hold all

if any(pValues >= 0)

ar{legendCounter} = sprintf('a = %s',rats(a(k1),3));

legendCounter = legendCounter + 1;

end

end

grid

axis([0 .21 0 .25])

hold off

legend(ar, 'Location','best')

end

You need to make the colors match for the legend and the plot. It's getting later here so I'll let you do that.

Image Analyst
on 23 Jan 2015

John
on 23 Jan 2015

Image Analyst
on 23 Jan 2015

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.