# contour2di

вычисляет кривые уровней поверхности на двумерном графике

## Последовательность вызова

    [xc, yc] = contour2di(x, y, z, nz)

## Аргументы

x, y

  два вещественных вектора размерами `n1` и `n2`: сетка.

z

  вещественная матрица размером `(n1,n2)`, значения функции.

nz

  значения уровней, либо число уровней.

  Если `nz` - целое число

    его значение указывает количество кривых уровня, равномерно распределённых от `zmin` до `zmax`, как показано ниже:

        z= zmin + (1:nz)*(zmax-zmin)/(nz+1)

    Заметьте, что уровни `zmin` и `zmax` не рисуются (вообще, они сводятся в точку), но их можно добавить следующим образом:

        [im,jm] = find(z == zmin);     // или zmax
        plot2d(x(im)',y(jm)',-9,"000")

  Если `nz` - вектор

    `nz(i)` указывает значение `i`-той кривой уровня.

xc, yc

  векторы одинаковых размеров, содержащие определения контуров. Подробности указаны ниже.

## Описание

Функция `contour2di` вычисляет кривые уровней поверхности `z = f(x, y)` на двумерном графике. Значения `f(x,y)` задаются матрицей `z` в точках сетки, определённой через `x` и `y`.

`xc(1)` содержит уровень, связанный с траекторией первого контура, `yc(1)` содержит количество `N1` точек, определяющих траекторию этого контура, а (`xc(1+(1:N1))`, `yc(1+(1:N1))`) содержат координаты точек траекторий. Вторая траектория начинается в `xc(2+N1)` и `yc(2+N1)` и так далее.

## Примеры

    [xc,yc]=contour2di(1:10,1:10,rand(10,10),5);
    k=1;n=yc(k);c=1;
    while k+yc(k)<size(xc,'*')
      n=yc(k);
      plot2d(xc(k+(1:n)),yc(k+(1:n)),c)
      c=c+1;
      k=k+n+1;
    end

## Смотрите также

- contour
- contour2d
- plot2d