1

我试图在 3d 平面上绘制一个非常简单的函数。

f=zeros(101,101);
xs=0:0.1:10;
ys=0:0.1:10;

for j=1:101
    f(1,j)=ys(j);
end

这里有3个地块:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

第一个是 ymin 处 f 与 x 的关系图:

figure; plot(xs,f(:,1),'*r')
xlabel('x')
ylabel('f')

第二个是 xmin 处 f 与 y 的关系图:

figure; plot(ys,f(1,:),'*r')
xlabel('y')
ylabel('f')

最后第三个是 3d 网格:

figure; mesh(xs,ys,f)
xlabel('x')
ylabel('y')

然而,网格图似乎与 2 个 2d 图相矛盾,如果你得到我,它似乎有 x 和 y 切换。任何人都可以帮忙吗?出于某种原因,它应该是 mesh(ys,xs,f) 吗?谢谢!

4

1 回答 1

3

mesh没有切换你的xand y,这是一个定义问题。不要忘记矩阵没有x轴或y轴,而是有行维度和列维度。行维度通常首先在一对中声明,就像x维度一样,但是如果您将它等同于图像,那么您通常会让x轴穿过,实际上沿着列轴!

试试这样吧

for j=1:101
    f(j,1)=ys(j);
end

figure; plot(xs,f(1,:),'*r')
xlabel('x')
ylabel('f')

figure; plot(ys,f(:,1),'*r')
xlabel('y')
ylabel('f')

figure; mesh(xs,ys,f)
xlabel('x')
ylabel('y')
于 2013-04-17T15:32:31.893 回答