我想以图形方式查找两个曲面和x-y平面之间的交点。 (表面z1与xy平面和交点z2与xy平面的交点)MATLAB - 数组交集
我已经创建了代表曲面z1 = 3 + x + y和z2 = 4-2x-4y的数组以及xy平面的z3使用meshgrid。无处不在,似乎我可以用来查找数组之间交集的唯一命令是A和B是数组的交叉(A,B)命令。但是,当输入相交(z1,z3)时,出现错误“A和B必须是矢量,或者'行'必须指定。”当我尝试相交(z1,z2,'rows')时,我返回了一个0×21的空矩阵。我在这里做错了什么?
我的代码:
x = -10:10;
y = -10:10;
[X,Y] = meshgrid(x,y);
z1 = 3+X+Y;
z2 = 4-2.*X-4.*Y;
z3 = 0.*X+0.*Y; %x-y plane
surf(X,Y,z1)
hold on
surf(X,Y,z2)
surf(X,Y,z3)
int1 = intersect(z1,z3,'rows');
int2 = intersect(z2,z3,'rows');
难道你不能找到'z1 == 0'和'z2 == 0'的地方吗?那将是与x-y平面的交点。或者如果你的网格中没有确切的(X,Y),你的意思是你想要插值吗? (另外,你的意思是“以图形方式”找到交点?你可以用数学方法计算出交点 - 不难 - 然后将它们绘制在图上?) –
我可以通过分析来做到这一点。但是我正在使用MATLAB的数值方法课程,我假设我的导师希望我使用MATLAB函数查找相交曲线。 – photon
阅读'contour3d'或'contour'的帮助,看看其中一个函数是否可以帮助您以图形方式确定两个阵列的z == 0曲线。 –