我试图在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个地块:
第一个是f与x在ymin的情节:
figure; plot(xs,f(:,1),'*r')
xlabel('x')
ylabel('f')
第二个是f与y在xmin的情节:
figure; plot(ys,f(1,:),'*r')
xlabel('y')
ylabel('f')
最后,第三个是3d网格:
figure; mesh(xs,ys,f)
xlabel('x')
ylabel('y')
然而,网格图似乎与2 2d图相矛盾,如果你找到我,它似乎会转换x和y。有人可以帮忙吗?它出于某种原因应该是网格(ys,xs,f)吗?谢谢!
答案 0 :(得分:3)
mesh
未切换您的x
和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')