在MATLAB中绘制x = y平面

时间:2014-12-17 14:30:44

标签: matlab

我没想到我应该如何使用2x2x2空间绘制x=y平面。

我创建了一个2x2 meshgrid

[X,Y]=meshgrid(-1:0.1:1,-1:0.1:1);

然后我来定义Z - 我被卡住了

我的想法就像这样

  1. 我需要为Z创建一个21x21数组(我使用surf函数..并且X,Y,Z的尺寸必须匹配。对吧?)。
  2. 我只需要填充x==y
  3. 后面的Z值
  4. 现在对于每个这样的点,x==y Z将会变化-1:0.1:1 ..这是否需要我在x==y上反复迭代并继续使用{{1}的值绘制Z. }}?
  5. 我是否正确地绘制了这架飞机?请帮助。

2 个答案:

答案 0 :(得分:8)

根据定义,您只需定义XZY等于X

[X Z] = meshgrid(-1:.1:1,-1:.1:1);
figure;
surf(X,X,Z);xlabel('x');ylabel('y');zlabel('z');

结果与 enter image description here

答案 1 :(得分:1)

你实际上是想在三维设置中做一些二维的事情。

有点不直观,但这并不意味着它无法完成,例如:

[X,Y]=meshgrid(-1:0.1:1,-1:0.1:1);
Z = zeros(size(X)); % Perhaps you want NaN rather than zeros
idx = X==Y;
Z(idx)=X(idx).^2+Y(idx)  % Of course identical to X(idx).^2+X(idx)
surf(Z)