我需要在MATLAB中按轮廓绘制矩形。但是当我绘制这个时,这个数字就像方形而没有矩形。
实际上X轴和Y轴的长度都是正确的,但是图形不是矩形。
我怎么能找到一个矩形图?
之前我需要通过countour绘制一个n eliptical并且它就像是圆圈,通过设置axes([xmin xmax ymin ymax])
这个问题已经解决但是知道这个命令不起作用。
以下是我的代码u0
,x
,y
是3个长度为nx*ny
的向量。 nx
和ny
是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'
答案 0 :(得分:1)
我认为问题在于您正在使用的矢量的大小。看看这个例子:
x = linspace(0,2,20);
y = linspace(0,1,10);
z = meshgrid(x,y);
contourf(x,y,z,20);
axis equal
它给出了以下结果:
现在,如果我们检查尺寸:
>> size(x)
ans =
1 20
>> size(y)
ans =
1 10
>> size(z)
ans =
10 20
如果x向量的大小等于y向量的大小,它显然给你一个正方形!在您的情况下,首先在使用 contourf 之前检查x1,y1,z的大小,确保在此之后使用的轴相等。