【问题标题】:How can I plot a meshgrid in 2D?如何在 2D 中绘制网格?
【发布时间】:2013-10-11 13:58:34
【问题描述】:

我有这段代码,它采用网格,并对每个点应用变换:

function [newx, newy] = transform(x, y)
    newx = 10 * x + y*y;
    newy = 5 * y;
end

[x, y] = meshgrid(1:5, 1:5);
[u, v] = arrayfun(@transform, x, y);

我想在 2D 中绘制新网格。我能得到的最接近的是通过添加 0 的 Z 分量在 3D 中这样做:

mesh(u, v, zeros(size(u)))

如何让 matlab/octave 仅在一组 2d 轴上显示此图?

【问题讨论】:

  • 你可以在最后加view(0,90)从上面看到右图

标签: matlab plot octave


【解决方案1】:

也许我在这里忽略了重点,但是简单的plot(u,v,'b-x',u',v','b-x') 有什么问题?

【讨论】:

  • 我是 matlab 新手,不知道自己在做什么?这样就可以了,但你能解释一下这些论点代表什么吗?
  • 查看绘图文档:mathworks.co.uk/help/matlab/ref/plot.html。首先,您以蓝色绘制vu,在每个数据点处有一条实线和一个“x”标记(即b-x 参数)。这为您提供了“弯曲”的垂直线。然后,您使用相同的格式在同一图表上绘制v (v') 的转置与u (u') 的转置。这会将水平线添加到图表中。
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多