gpt4 book ai didi

matlab - 不仅仅根据 z 定义曲面

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:40 24 4
gpt4 key购买 nike

我有三个不同的表面,我想在一张图中显示所有的表面。

问题是,我有一个根据 z 定义的表面(意味着我有 x 和 y 值以及一个网格,它指定每个组合的 z 值)和另外两个根据 x 定义的表面.这意味着对于一个 x,y 对存在不同的 z 值。

我的想法是:

figure
surf(x,y,zgrid)
hold on
surf(x,ygrid,z)
surf(x,ygrid2,z)
hold off

我希望 MATLAB 能够自行管理它,但它没有。您对如何获得想要的结果有任何想法吗?我想在一个图中显示所有这些以显示横截面。

这是一张图片,它或多或少应该是这样的:

enter image description here

如果有更漂亮的显示方法,请告诉我。

最佳答案

你没有具体说明到底出了什么问题,但我会冒险猜测你在尝试绘制第二个表面时遇到了如下错误:

Error using surf (line 82)
Z must be a matrix, not a scalar or vector.

我猜你的 xyz 变量是向量,而不是矩阵。 surf函数允许 XY 输入为向量,然后使用 meshgrid 将其扩展为矩阵.不过,它不会Z 输入执行此操作。

在我看来,最好的做法是无论如何都对所有输入使用矩阵。这是我执行此操作(使用 meshgrid)绘制立方体的三个表面的示例:

% Top surface (in z plane):
[x, y] = meshgrid(1:10, 1:10);
surf(x, y, 10.*ones(10), 'FaceColor', 'r');
hold on;

% Front surface (in y plane):
[x, z] = meshgrid(1:10, 1:10);
surf(x, ones(10), z, 'FaceColor', 'b');

% Side surface (in x plane):
[y, z] = meshgrid(1:10, 1:10);
surf(ones(10), y, z, 'FaceColor', 'g');
axis equal

这是情节:

enter image description here

关于matlab - 不仅仅根据 z 定义曲面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44705327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com