用加号在行之间填充

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)