Неупорядоченные пары координат XY + контурный график концентрации - PullRequest
2 голосов
/ 06 января 2012

У меня есть 2 вектора, X и Y, соответствующих списку неупорядоченных координат, и соответствующий вектор концентрации C для каждой точки.

Я хотел бы нанести это на структурированную сетку в виде 2D контурного графика.

scatter3(X,Y,C,[],C);

дает мне то, что я хочу визуально, но я ищу 2D контуры, то есть pcolor.Есть ли простое решение, такое как griddata или trigriddata?

РЕДАКТИРОВАТЬ: Хорошо, так `scatter3 (X, Y, C, [], C);view ([0 90]) ´ - правильный визуальный элемент.TriScatteredInterp прекрасно работает для прямоугольника.Но как насчет неправильной формы, такой как карта?: =)

F = TriScatteredInterp(x,y,C); ty=0:0.005:0.284; tx=0:0.005:0.65; [qx,qy] = meshgrid(tx,ty); qC = F(qx,qy); pcolor(qx,qy,qC);

ПРИМЕР: (X = координата ширины, Y = координата высоты, C = концентрациязагрязнитель)

X    Y    C
0.1  0.0  5
0.1  0.1  10
0.1  0.21 5
0.2  0.1  4
0.2  0.3  1
0.2  0.5  2
0.2  0.51 7
0.3  0.15 4
0.3  0.36 6
0.3  0.5  3
0.3  0.52 7

scatter3(X,Y,C,[],C,'filled');      %individual plotting of X,Y pairs and colors=C
view([0 90])                        %see only XY and Z becomes flat

Представьте, что у нас было 10000 пар XY, поэтому scatter3 дает почти image, но без интерполяции.

1 Ответ

0 голосов
/ 06 января 2012

Если я правильно понимаю ваш вопрос, вы можете использовать contour(X,Y,Z)

РЕДАКТИРОВАТЬ: Вы можете использовать imagesc с матрицей, которую вы делаете самостоятельно.Поэтому, если ваши значения x и y находятся в разумных пределах, вы можете просто начать с:

I = zeros(max(x), max(y));
for d = 1: length(x),
    I(x(d),y(d)) = z(d);
end
imagesc(I);
...