Shading with vertical lines

2 次查看(过去 30 天)
I'm trying to shade the region over which the integral extends with vertical lines. This is my integral:
F = @(x,y) x.*y;
ymin = @(x) x.^2;
ymax = @(x) x;
q = integral2(F,0,1,ymin,ymax)
The code below produces a graph with vertical line shading over its region. This is an example of what i'm trying to do.
f = @(x) sin(x + 1); g = @(x) x.^3 - 3*x + 1;
fplot(f, [-3, 3]), hold on
fplot(g, [-3, 3], 'LineWidth', 2)
>> x1 = fzero(@(x) f(x) - g(x), -2);
x2 = fzero(@(x) f(x) - g(x), 0);
x3 = fzero(@(x) f(x) - g(x), 2);
>> xcoord = linspace(x1, x3, 10);
ycoord = [f(xcoord); g(xcoord)];
plot([xcoord;xcoord], ycoord), hold off
  5 个评论
Ikenna Iwudike
Ikenna Iwudike 2022-4-25
Yea, let me see how a surface plot would look. Also yes I was talking about the first block.
Rik
Rik 2022-4-25
See if my edited answer works for you. The loop can be optimized to plot all stems as a single object, but I first wanted to create it like this.

请先登录,再进行评论。

采纳的回答

Rik
Rik 2022-4-25
编辑:Rik 2022-4-25
I have put some inefficient code at the start to integrate over y so you end up with a function of x alone. I then used the same g function as you used in your second block. Is this what you mean?
F = @(x,y) x.*y;
ymin = @(x) x.^2;
ymax = @(x) x;
f_base =@(x) integral(@(y) F(x,y),ymin(x),ymax(x));
f=@(x) arrayfun(f_base,x);
g = @(x) x.^3 - 3*x + 1;
fplot(f, [-2, 2]), hold on
fplot(g, [-2, 2], 'LineWidth', 2)
x1 = fzero(@(x) f(x) - g(x), -2);
x2 = fzero(@(x) f(x) - g(x), 0);
x3 = fzero(@(x) f(x) - g(x), 2);
xcoord = linspace(x1, x3, 100);
ycoord = [f(xcoord); g(xcoord)];
plot([xcoord;xcoord], ycoord,'k'), hold off
If you want to plot a surface, you can use surf. plot3 will allow you to plot a line in a 3D axes.
F = @(x,y) x.*y;
ymin = @(x) x.^2;
ymax = @(x) x;
[X,Y]=ndgrid(linspace(0,1,100));
Y(Y<ymin(X))=NaN;
Y(Y>ymax(X))=NaN;
Z=F(X,Y);
surf(X,Y,Z)
Az=-5;El=65;view(Az,El) % set azimuth and elevation
hold on
for n=1:numel(Z)
if isnan(Z(n)),continue,end
plot3(X(n)*[1 1],Y(n)*[1 1],[0 Z(n)],'k')
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by