通过运行我编写的以下matlab函数,x轴和y轴在图中互换。
谁能告诉我问题出在哪里,或者帮我解决?提前感谢您的帮助。
function axislabeling(n)
x=1:1:n;
y=1:1:n;
z=zeros(n,n);
for i=1:n
for j=1:n
z(i,j)=i;
end
end
surf(x,y,z(x,y))
xlabel('x-axis')
ylabel('y-axis')
zlabel('z-axis')发布于 2010-06-25 18:08:44
我怀疑问题不是轴的标签错误,而是图表不是您所期望的。原因是matlab矩阵被访问(行、列) --即(y,x) --而不是您所拥有的(x,y)。因此,当您设置z(i,j)=i时,您得到的斜率方向是错误的。
发布于 2010-06-26 00:16:40
在这一点上,我同意@walkytalky。
出于故障排除的目的,最好使用x~=y来帮助您更清楚地了解情况。
例如:
n=10;
x=1:n; %# stepsize of 1 is default and need not be specified
y=x.^2; %# instead of y=1:n to more easily distinguish x and y
z=repmat(x',1,n) %# use of repmat should be faster than a nested loop
surf(x,y,z)
ylabel('y-axis')
xlabel('x-axis')
zlabel('z-axis')给出一个图,其中x和y轴被清晰地标记为正确的。
发布于 2014-04-21 18:28:24
在matlab中,矩阵存储为(行,列)格式,但行表示y轴,列表示x轴。因此,绘图命令应该是surf(x,y,z'),而不是surf(x,y,z)。
https://stackoverflow.com/questions/3116849
复制相似问题