如何在MATLAB中绘制矩形

时间:2013-12-20 07:29:22

标签: matlab plot

我需要在MATLAB中按轮廓绘制矩形。但是当我绘制这个时,这个数字就像方形而没有矩形。

实际上X轴和Y轴的长度都是正确的,但是图形不是矩形。

我怎么能找到一个矩形图?

之前我需要通过countour绘制一个n eliptical并且它就像是圆圈,通过设置axes([xmin xmax ymin ymax])这个问题已经解决但是知道这个命令不起作用。

以下是我的代码u0xy是3个长度为nx*ny的向量。 nxny是x轴和y轴上的点数。

figure 
for i=1:ny
    z(i,:)=u0((i-1)*nx+1:i*nx);
    x1(i,:)=x((i-1)*nx+1:i*nx);
    y1(i,:)=y((i-1)*nx+1:i*nx);
end;

cMap = [0.45 0.6 0.65;1 1 1]; % [green;yellow] on rgb-color
colormap(cMap);
axis equal
contourf(x1,y1,z,'LineColor','none')
colorbar

让's = 0:0.1:0.2'和'x = repmat(s,1,ny)'和'd = 0:0.1:1','y = repmat(d,1,nx)' 'U0 = X + Y'

1 个答案:

答案 0 :(得分:1)

我认为问题在于您正在使用的矢量的大小。看看这个例子:

x = linspace(0,2,20);
y = linspace(0,1,10);
z = meshgrid(x,y);
contourf(x,y,z,20);
axis equal

它给出了以下结果: enter image description here

现在,如果我们检查尺寸:

>> size(x)

ans =

     1    20

>> size(y)

ans =

     1    10

>> size(z)

ans =

    10    20

如果x向量的大小等于y向量的大小,它显然给你一个正方形!在您的情况下,首先在使用 contourf 之前检查x1,y1,z的大小,确保在此之后使用的轴相等。