ezsurf

(Не рекомендуемый) Простой в использовании 3-D цветной поверхностный плоттер

ezsurf не рекомендуется. Используйте fsurf вместо этого.

Синтаксис

ezsurf(fun)
ezsurf(fun,domain)
ezsurf(funx,funy,funz)
ezsurf(funx,funy,funz,[smin,smax,tmin,tmax])
ezsurf(funx,funy,funz,[min,max])
ezsurf(...,n)
ezsurf(...,'circ')
ezsurf(axes_handle,...)
h = ezsurf(...)

Описание

ezsurf(fun) создает график fun(x,y) с помощью функции surf. fun построен по области по умолчанию:-2π <x <2π,-2π <y <2π.

fun может быть указателем на функцию, вектором символов или строкой (см. раздел Tips).

ezsurf(fun,domain) графики fun по заданному domain. domain должен быть вектором. Смотрите, что раздел Algorithms для получения дополнительной информации о векторных входных параметрах по сравнению с осями ограничивает выходные параметры.

ezsurf(funx,funy,funz) строит параметрический поверхностный funx(s,t), funy(s,t) и funz(s,t) по квадрату:-2π <s <2π,-2π <t <2π.

ezsurf(funx,funy,funz,[smin,smax,tmin,tmax]) или ezsurf(funx,funy,funz,[min,max]) строит параметрическую поверхность с помощью заданной области.

ezsurf(...,n) графики fun по области по умолчанию с помощью n-by-n сетка. Значение по умолчанию для n равняется 60.

ezsurf(...,'circ') графики fun по диску, сосредоточенному на области.

ezsurf(axes_handle,...) графики в оси с указателем axes_handle вместо текущей системы координат (gca).

h = ezsurf(...) возвращает указатель на объект подложки в h.

Примеры

свернуть все

Постройте функцию f(x,y)=real(aзагар(x+iy)) по области -2π<x<2π и -2π<y<2π. Функция ezsurf не строит точки, где математическая функция не задана. Эти точки установлены в NaN так, чтобы они не строили.

figure
ezsurf('real(atan(x+i*y))')

Используйте surf, чтобы отобразить те же данные на графике, не фильтруя разрывы.

figure
[x,y] = meshgrid(linspace(-2*pi,2*pi,60));
z = real(atan(x+1i.*y));
surf(x,y,z)

Советы

ezsurf и ezsurfc не принимают комплексные входные параметры.

Передача функции как вектор символов или строка

Умножение массивов, деление и возведение в степень всегда подразумеваются в выражении, которое вы передаете ezsurf. Например, синтаксис MATLAB® для объемной поверхностной диаграммы выражения

sqrt(x.^2 + y.^2);

записан как

ezsurf('sqrt(x^2 + y^2)')

Таким образом, x^2 интерпретирован как x.^2 в векторе символов, или представьте вас в виде строки, передают ezsurf.

Если функция, которая будет построена, является функцией переменных u и v (а не x и y), то доменные конечные точки umin, umax, vmin и vmax сортируются в алфавитном порядке. Таким образом ezsurf('u^2 - v^3',[0,1],[3,6]) строит u 2 - v 3 более чем 0 <u <1, 3 <v <6.

Передача указателя на функцию

Аргументы указателя на функцию должны указать на функции тому использованию синтаксис MATLAB. Например, следующие операторы задают анонимную функцию и передают указатель на функцию fh ezsurf.

fh = @(x,y) sqrt(x.^2 + y.^2);
ezsurf(fh)

Обратите внимание на то, что при использовании указателей на функцию, необходимо использовать степень массивов, умножение массивов и операторы деления массивов (.^, .*, ./), поскольку ezsurf не изменяет синтаксис, как в случае с вектором символов или представляет входные параметры в виде строки.

Передача дополнительных аргументов

Если ваша функция имеет дополнительные параметры, например, k в myfun:

function z = myfun(x,y,k1,k2,k3)
z = x.*(y.^k1)./(x.^k2 + y.^k3);

затем можно использовать анонимную функцию, чтобы указать что параметр:

ezsurf(@(x,y)myfun(x,y,2,2,4))

Алгоритмы

ezsurf определяет x-и пределы осей Y по-разному в зависимости от того, как вы вводите область (если вообще). В следующей таблице R является вектором [xmin, xmax, ymin, ymax] и v являются вручную вводимым доменным вектором.

Количество значений домена задало:Получившийся доменный вектор:
v = [ ];
R = [-2*pi, 2*pi, -2*pi, 2*pi];
v = [ v(1) ];
R = double([-abs(v),abs(v),-abs(v),abs(v)]);
v = [ v(1) v(2) ];
R = double([v(1),v(2),v(1),v(2)]);
v = [ v(1) v(2) v(3) ];
R = double([-v(1),v(2),-abs(v(3)),abs(v(3))]);
v = [ v(1) v(2) v(3) v(4) ];
R = double(v);
v = [ v(1)..v(n) ]; n>4
R = double([-abs(v(1)), abs(v(1)), -abs(v(1)), abs(v(1))]);

Если вы задаете один номер в невекторном формате (без квадратных скобок, []), ezsurf интерпретирует его как n, число точек, желаемое между осями значения min и max.

По умолчанию ezsurf использует 60 точек между max и значениями min оси. Когда min и значения max являются значениями по умолчанию (R = [-2*pi, 2*pi, -2*pi, 2*pi];), ezsurf гарантирует, что 60 точек находятся в пределах некомплексной области значений заданного уравнения. Например, 1x2y2 только действительно когда x2y21. График по умолчанию этой функции выглядит так:

ezsurf('sqrt(1-x^2-y^2)')

Вы видите, что существует 60 точек между минимальными и максимальными значениями для который 1x2y2имеет действительные значения. Однако, когда вы задаете значения домена, чтобы совпасть со значением по умолчанию (R = [-2*pi, 2*pi, -2*pi, 2*pi];), различный результат появляется:

ezsurf('sqrt(1-x^2-y^2)',[-2*pi 2*pi])

В этом случае графические пределы являются тем же самым, но ezsurf использовал 60 точек между пользовательскими пределами вместо того, чтобы проверять, чтобы видеть, будут ли все те точки иметь действительные ответы.

Расширенные возможности

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

| | | | |

Представлено до R2006a