Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中绘制正方形曲面_Matlab_Plot - Fatal编程技术网

在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)')