1

我想绘制垂直于矢量的平面,并用 Matlab 穿过一个点。我的向量有坐标v1 = [2,i],我的点有坐标com_m1 = [1,i]

我都试过了:

xx=(-15:-6:0.25);
yy=(-10:-2:0.25);
for i = 1:length(xx)
    for j = 1:length(yy)
            zz_m1(j,i)=(v1(2,2)*(xx(i) - com1(1,1)) + v1(2,2)*(yy(j)-com1(1,2)))/v1(2,3) + com1(1,3);
    end
end
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none') % Plotting the surface

[xx, yy]=meshgrid(-15:-6:0.25,-10:-1:0.25);
zz_m1=(v1(2,2)*(xx - com1(1,1)) + v1(2,2)*(yy-com1(1,2)))/v1(2,3) + com1(1,3);
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none')

但两者都没有奏效。谁能帮我理解我做错了什么?谢谢!

4

1 回答 1

1

您的代码中存在一些问题。最大的是这条线,xx=(-15:-6:0.25);它产生一个空矩阵,因为您要求一个从 开始-15并继续到的向量-Inf

如果您不理解错误,那么您可能应该阅读冒号符号文档 您的矩阵yyxx.

此外,我认为您对飞机的计算不正确。我在本地使用随机生成的代码尝试了您的代码v1com1并且该线与飞机不正常。

这是一个很好的解释,如何计算通过一个点并垂直于已知矢量的平面的方程:http: //msemac.redwoods.edu/~darnold/math50c/matlab/planes/index.xhtml(向下滚动到A Plane is a Surface

于 2012-08-29T15:05:36.340 回答