根据函数 MATLAB 给出的颜色图在两条曲线之间进行填充
Filling between two curves, according to a colormap given by a function MATLAB
如何用适合函数值的颜色图填充两条曲线之间的区域。
例如,这是两条曲线,以及我希望在两者之间的值的函数
L=5;
x=1:10;
t=(1:10)/10;
figure(1)
subplot(2,1,1)
plot(x,t,x+L,t)
subplot(2,1,2)
plot(x,exp(-(x/L).^2))
填充区域应取自任何颜色图。
通过一些基本的索引、高斯长度和线方程数学的重新缩放,我们可以通过以下方式做到这一点:
L=5;
x=1:10;
t=(1:10)/10;
[X,Y]=meshgrid(linspace(0,x(end)+L,500),linspace(0,t(end),500));
%slope of both lines
m=(t(2)-t(1))/(x(2)-x(1));
for ii=1:size(X,1)
z(ii,:)=exp(-((X(ii,:)-Y(ii,1)/m)/(L/2)).^2);
end
% basic line maths an dindexing
z(Y./X>m)=NaN;
z((Y+m*L)./X<m)=NaN;
surf(X,Y,z,'linestyle','none')
view(2)
如何用适合函数值的颜色图填充两条曲线之间的区域。
例如,这是两条曲线,以及我希望在两者之间的值的函数
L=5;
x=1:10;
t=(1:10)/10;
figure(1)
subplot(2,1,1)
plot(x,t,x+L,t)
subplot(2,1,2)
plot(x,exp(-(x/L).^2))
填充区域应取自任何颜色图。
通过一些基本的索引、高斯长度和线方程数学的重新缩放,我们可以通过以下方式做到这一点:
L=5;
x=1:10;
t=(1:10)/10;
[X,Y]=meshgrid(linspace(0,x(end)+L,500),linspace(0,t(end),500));
%slope of both lines
m=(t(2)-t(1))/(x(2)-x(1));
for ii=1:size(X,1)
z(ii,:)=exp(-((X(ii,:)-Y(ii,1)/m)/(L/2)).^2);
end
% basic line maths an dindexing
z(Y./X>m)=NaN;
z((Y+m*L)./X<m)=NaN;
surf(X,Y,z,'linestyle','none')
view(2)