2012-03-28 5 views
1

Я хочу создать contour plot in MATLAB, как во втором примере на this странице:Пользовательский контур участка в MATLAB

ContourPlot[Cos[x] + Cos[y] == 1/2, {x, 0, 4 Pi}, {y, 0, 4 Pi}] 

Как вы можете видеть, что они замышляют только те строки, для которых F (X, Y) == some_value. Еще одна проблема, которую я имею, заключается в том, что у меня действительно нет функции f, но есть только набор точек типа [x, y, z] (чтение из файла) и some_value конечно.

Можно ли сделать такой участок в MATLAB?

ответ

1

Просто используйте функцию contour с 2-го аргумента искомых значений (это вектор из 2-х элементов, а не скаляр, чтобы отличить вызов функции из другого режима):

some_value = .5; 
[x y] = meshgrid(linspace(0,4*pi,30),linspace(0,4*pi,30)); 
z = cos(x)+cos(y); 
contour(x, y, z, [some_value, some_value]) 
+0

Спасибо. Будет ли эта работа при условии, что x, y и z в моем случае являются массивами разреженных точек, заданных в качестве входных данных? – adrianp

+0

Редкий в каком смысле? если это разреженное представление Matlab, то «недостающие» значения считаются равными нулю, и он должен работать. Если у вас отсутствуют значения, вы не можете найти контур. –

+0

Мои файлы похожи на: [-1, -1, 2], [-1, 0.99, 4], ... со значением [x, y, z] – adrianp

Смежные вопросы