Создать контур с учетом векторов X, Y и Z - PullRequest
1 голос
/ 14 ноября 2009

Учитывая 3 пары вектора, X, Y и Z, как создать контур? Я понимаю, что нам нужно использовать сюжет contour. Но дело в том, что нам нужно передать матрицу 2x2 для этого аргумента, который, предположительно, является матрицей Z, соответствующей каждой паре X, Y. Но это означало бы, что мне нужно пройти дополнительные мили, чтобы создать такую ​​матрицу, используя griddata интерполяцию, прежде чем говорить о генерации контура.

Есть ли другой, более краткий метод?

Ответы [ 2 ]

4 голосов
/ 15 ноября 2009

Да. Используйте инструмент Tricontour . Он найден при обмене файлами (в Matlab Central.). Это делает контурирование по вашему желанию напрямую, не заставляя вас использовать meshgrid и griddata.

0 голосов
/ 15 ноября 2009

MATLAB удовлетворяет эту вашу потребность довольно лаконично.

Что вам нужно сделать, это использовать meshgrid, чтобы двумерно преобразовать ваши X и Y векторы. Вот простой пример, демонстрирующий, как создать контурный график z = sin (x^2 + x*y^2):

x = -10:0.1:10;
y = -10:0.1:10;
[x,y] = meshgrid(x,y);
z = sin(x.^2+x.*y.^2);
contour(x,y,z)

Обратите внимание на использование обозначений .^ и .*, что заставляет MATLAB проводить поэлементную оценку матрицы z, делая ее двумерной в процессе.

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