Функция сетки, кажется, меняет местами значения x и y

Я пытаюсь построить очень простую функцию в 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 поменялись местами, если вы меня понимаете. Кто-нибудь может помочь? По какой-то причине это должно быть mesh(ys,xs,f)? Спасибо!


person user2291324    schedule 17.04.2013    source источник


Ответы (1)


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')
person Dan    schedule 17.04.2013