通过运行我写的以下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')
答案 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
时,您的斜坡方向错误。