在Matlab中进行2D矩阵的3D绘图

7

我有一个MxN的矩阵Z和一个变量h。这个矩阵表示函数f(x,y)的解的点。h是点之间的间距。例如:

Z(x/h,y/h) = (some value in the Z direction), where x and y are some multiple of h

域从0到M*h,范围从0到N*h。我想要制作一个由矩阵定义的解的3D表示。图形应该类似于使用pdetool生成的图形。我应该如何在Matlab中完成这个操作?

2个回答

11
您可以使用surfbar3函数。

以下是文档链接:

surf:

enter image description here

bar3:

enter image description here


谢谢!我认为surf是我想要的。有没有办法使用surf命令并定义一个非矩形域?基本上,我有一个矩阵的区域,我不想绘制它。 - user972276
根据文档,您可以使用 surf(X,Y,Z) 来指定每个 Z(X,Y) 位置。这可用于在您的内容中创建空洞。如果没有更多关于您的“空洞”的解释,我无法提供更多细节。也许您可以提出一个单独的问题来获得更多帮助。 - Oli
是的,但如果我将X设置为类似[0,h,2h,2h,...]的东西,Y也是如此,那么这会产生什么样的孔?它说我可以将X和Y指定为矩阵,但我不明白那会如何工作。我会在另一个问题中问。 - user972276
X和Y的大小应该与Z相同。 - Oli
是的,但是在Z轴上不应该被绘制的点的(x,y)坐标是什么?我不能将其设置为(0,0)或其他值,因为所有Z点都会移动到(0,0)。 - user972276

3
以下是使用Matlab中的surf绘制二维矩阵的示例。 代码:
x_offset = [78, 216, 150, 342, 258, 336;
            168, 174, 174, 222, 150, 246;
            36, 180, 54, 138, 138, 198;
            60, -72, 90, 66, 114, 36;
            -90, -108, -60, 12, 54, -24;
            -42, -78, -138, -42, -12, -114;
            -108, -30, -108, -66, -156, -114;
            -66, -114, -114, -84, -138, -96];
figure(1), surf(x_offset);
xlabel('X'), ylabel('Y'), title('X-offset Error Distribution');

输出:

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接