用加号在行之间填充
filling between lines with plus sign
我想在 matlab 中用 + 号填充任何曲线。为简单起见,您可以考虑单位正方形,我希望正方形内的每个地方都有 + 号。我曾尝试在 matlab 中使用填充函数,但这会使该区域变得丰富多彩但没有填充 + 号。有什么想法吗?
您可以使用双 for 循环手动完成。 IE。我为你写了一个代码;
t=0:0.1:10;
y=5+5*sin(2*pi*t/10);
filler=zeros(10,10);
plot(t,y);
hold on
for a=1:10
for b=1:10
if a<5+5*sin(2*pi*b/10)
filler(a,b)=1;
scatter(b,a,'+','MarkerEdgeColor',[0 .7 .7])
end
end
end
你可以通过将a和b相乘来改变'+'符号的密度。希望对你有用。
如果你有 2 条曲线来填充它们之间的间隙,只需将此命令添加到 if 语句中。
&& a>(Function of curve 2)
另一种可能性是使用 Chad Greene 的 Climate Data Toolbox from Matlab file exchange. You can read the docs on the function here 中的 stipple
函数。
xx=[-10:.01:10];
yy=[-10:.01:10];
[X,Y]=ndgrid(xx,yy);
mask=zeros(size(X));
mask(X>0 & Y>0)=1;
figure
pcolor(X,Y,mask),shading flat,colorbar
hold on
stipple(X,Y,logical(mask),'density',35,'color','r','marker','+','markersize',9)
我想在 matlab 中用 + 号填充任何曲线。为简单起见,您可以考虑单位正方形,我希望正方形内的每个地方都有 + 号。我曾尝试在 matlab 中使用填充函数,但这会使该区域变得丰富多彩但没有填充 + 号。有什么想法吗?
您可以使用双 for 循环手动完成。 IE。我为你写了一个代码;
t=0:0.1:10;
y=5+5*sin(2*pi*t/10);
filler=zeros(10,10);
plot(t,y);
hold on
for a=1:10
for b=1:10
if a<5+5*sin(2*pi*b/10)
filler(a,b)=1;
scatter(b,a,'+','MarkerEdgeColor',[0 .7 .7])
end
end
end
你可以通过将a和b相乘来改变'+'符号的密度。希望对你有用。
如果你有 2 条曲线来填充它们之间的间隙,只需将此命令添加到 if 语句中。
&& a>(Function of curve 2)
另一种可能性是使用 Chad Greene 的 Climate Data Toolbox from Matlab file exchange. You can read the docs on the function here 中的 stipple
函数。
xx=[-10:.01:10];
yy=[-10:.01:10];
[X,Y]=ndgrid(xx,yy);
mask=zeros(size(X));
mask(X>0 & Y>0)=1;
figure
pcolor(X,Y,mask),shading flat,colorbar
hold on
stipple(X,Y,logical(mask),'density',35,'color','r','marker','+','markersize',9)