How do I shade the area between two curves on a plot that is generated by arrays?

For example:
x1 = [ 1 2 3 ];
y1 = [2 5 8];
x2 = [1 2.5 3.5];
y2 = [1 6 3];
plot(x1, y1)
hold on
plot(x2, y2)
Thanks for the help!

 Risposta accettata

Use the patch function.
x1 = [1 2 3];
y1 = [2 5 8];
x2 = [1 2.5 3.5];
y2 = [1 6 3];
hold on
patch([x1 flip(x2)], [y1 flip(y2)],'y','EdgeColor','none')
plot(x1, y1,'b')
plot(x2, y2,'r')
box on
axis padded

4 Commenti

Awesome thanks for the response. However, what if the arrays are different lengths? I have one aray of 1250 and another of 2500
Still works
x1 = [1 2 3 4 5 6 7 8];
y1 = [2 5 8 11 14 17 20 23];
x2 = [1 2.5 3.5];
y2 = [1 6 3];
hold on
patch([x1 flip(x2)], [y1 flip(y2)],'y','EdgeColor','none')
plot(x1, y1,'b')
plot(x2, y2,'r')
box on
axis padded
I am getting the error:
"error in horzcat:
dimensions in array being concatenated are not consistent"
Any ideas? I appreciate your responsiveness.
Fixed: The arrays were 1250x1 instead of 1x1250. thanks!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by