轴标记问题

时间:2010-06-25 09:14:22

标签: matlab

通过运行我写的以下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')

3 个答案:

答案 0 :(得分:1)

我同意@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轴清晰标记正确的图表。

答案 1 :(得分:1)

在matlab中,矩阵存储为(行,列)格式,但行表示y轴,列表示x轴。因此,绘图命令而不是surf(x,y,z)应该是surf(x,y,z')。

答案 2 :(得分:0)

我怀疑问题不在于轴被错误标记,而是图形不符合您的预期。原因是访问matlab矩阵(行,列) - 即(y,x) - 而不是(x,y)。因此,当您设置z(i,j)=i时,您的斜坡方向错误。