在Matlab中绘制正方形曲面
如何在在Matlab中绘制正方形曲面,matlab,plot,Matlab,Plot,如何在Matlab中绘制正方形曲面 更确切地说,我想画一个值为0.5的正方形,它位于X:-1到X=1,Y:2.5到3.5 我尝试了以下方法 [X,Y] = meshgrid(-3.5:.5:3.5); Z = zeros(15); Z(end-2:end,5:9) = 0.5; surf(X,Y,Z); 这不会产生垂直边。如何存档?您需要提供多个Z值以及相同的X、Y值。一个小例子: >> [X, Y]= meshgrid([1,2,2,3,4], 1:2) X = 1
Matlab
中绘制正方形曲面
更确切地说,我想画一个值为0.5的正方形,它位于X:-1到X=1,Y:2.5到3.5
我尝试了以下方法
[X,Y] = meshgrid(-3.5:.5:3.5);
Z = zeros(15);
Z(end-2:end,5:9) = 0.5;
surf(X,Y,Z);
这不会产生垂直边。如何存档?您需要提供多个Z值以及相同的X、Y值。一个小例子:
>> [X, Y]= meshgrid([1,2,2,3,4], 1:2)
X =
1 2 2 3 4
1 2 2 3 4
Y =
1 1 1 1 1
2 2 2 2 2
>> Z = [0,0,1,1,0;0,0,1,1,0]
Z =
0 0 1 1 0
0 0 1 1 0
>> surf(X, Y, Z)
结果如下:
这在2D中应该是相同的,您只需要将要复制的X和Y值绕在头上,并相应地调整Z矩阵。这就是
补丁
功能的用途
因此,对于您的情况:
X = [ -1 -1 1 1];
Y = [3.5 2.5 2.5 3.5];
Z = [0.5 0.5 0.5 0.5];
patch(X,Y,Z,'red')
view(45,45)
我以
figure;
hold on;
X = [ -2 -2 2 2];
Y = [2 4 4 2];
Z = [0 0 0 0];
patch(X,Y,Z,'blue');
X = [ -1 -1 1 1];
Y = [3.5 2.5 2.5 3.5];
Z = [0.5 0.5 0.5 0.5];
h = patch(X,Y,Z,'red');
X = [ -1 -1 1 1];
Y = [2.5 2.5 2.5 2.5];
Z = [0 0.5 0.5 0];
patch(X,Y,Z,'red');
X = [1, 1, 1, 1];
Y = [2.5 2.5 3.5 3.5];
Z = [0 0.5 0.5 0];
patch(X,Y,Z,'red');
view(45,30)
legend(h, 'F(u,v)')
xlabel('u')
ylabel('v')
zlabel('F(u,v)')