Вопрос маркировки оси - PullRequest
2 голосов
/ 25 июня 2010

Ось x и ось y взаимозаменяемы на рисунке, выполнив следующую написанную мной функцию matlab.

Может кто-нибудь сказать мне, где проблема, или помочь мне решить ее?Заранее спасибо за любую помощь.

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 ]

1 голос
/ 25 июня 2010

Я согласен с @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 голос
/ 21 апреля 2014

В matlab матрицы хранятся в формате (строки, столбцы), но строки обозначают ось y, а столбцы - ось x.Итак, команда plotting вместо surf (x, y, z) должна быть surf (x, y, z ').

0 голосов
/ 25 июня 2010

Я подозреваю, что проблема не в том, что оси неправильно маркированы, а в том, что график не соответствует вашим ожиданиям. Причина в том, что доступ к матрицам matlab (строка, столбец) - т.е. (y,x) - вместо (x,y), как у вас есть. Поэтому, когда вы устанавливаете z(i,j)=i, вы получаете наклон в неправильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...