fsurf

Постройте график 3-D поверхности

Синтаксис

fsurf(f)
fsurf(f,xyinterval)
fsurf(funx,funy,funz)
fsurf(funx,funy,funz,uvinterval)
fsurf(___,LineSpec)
fsurf(___,Name,Value)
fsurf(ax,___)
fs = fsurf(___)

Описание

пример

fsurf(f) создает объемную поверхностную диаграмму функционального z = f(x,y) на интервале по умолчанию [-5 5] для x и y.

fsurf(f,xyinterval) строит график на заданном интервале. Чтобы использовать тот же интервал и для x и для y, задайте xyinterval как двухэлементный вектор формы [min max]. Чтобы использовать различные интервалы, задайте четырехэлементный вектор формы [xmin xmax ymin ymax].

пример

fsurf(funx,funy,funz) строит график параметрической поверхности, заданной x = funx(u,v), y = funy(u,v), z = funz(u,v) на интервале по умолчанию [-5 5] для u и v.

fsurf(funx,funy,funz,uvinterval) строит график на заданном интервале. Чтобы использовать тот же интервал и для u и для v, задайте uvinterval как двухэлементный вектор формы [min max]. Чтобы использовать различные интервалы, задайте четырехэлементный вектор формы [umin umax vmin vmax].

fsurf(___,LineSpec) устанавливает стиль линии, символ маркера и поверхностный цвет. Например, '-r' задает красные линии. Используйте эту опцию после любой из предыдущих комбинаций входных аргументов.

пример

fsurf(___,Name,Value) задает поверхностные свойства с помощью одного или нескольких аргументов в виде пар "имя-значение". Используйте эту опцию после любой из комбинаций входных аргументов в предыдущих синтаксисах.

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

пример

fs = fsurf(___) возвращает объект FunctionSurface или объект ParameterizedFunctionSurface, в зависимости от входных параметров. Используйте fs, чтобы запросить и изменить свойства определенной поверхности. Для списка свойств смотрите FunctionSurface Properties или ParameterizedFunctionSurface Properties.

Примеры

свернуть все

Постройте график выражения на интервале по умолчанию и.

fsurf(@(x,y) sin(x)+cos(y))

Постройте график кусочного выражения

Задайте интервал графического изображения как второй входной параметр fsurf. Когда вы строите график нескольких поверхностей на различных интервалах в тех же осях, пределы по осям настраивают, чтобы включать все данные.

f1 = @(x,y) erf(x)+cos(y);
fsurf(f1,[-5 0 -5 5])
hold on
f2 = @(x,y) sin(x)+cos(y);
fsurf(f2,[0 5 -5 5])
hold off

Постройте график параметризованной поверхности

для и. Добавьте свет к поверхности с помощью camlight.

r = @(u,v) 2 + sin(7.*u + 5.*v);
funx = @(u,v) r(u,v).*cos(u).*sin(v);
funy = @(u,v) r(u,v).*sin(u).*sin(v);
funz = @(u,v) r(u,v).*cos(v);
fsurf(funx,funy,funz,[0 2*pi 0 pi]) 
camlight

Для и от к, постройте график 3-D поверхности. Добавьте заголовок и подписи по осям и отобразите схему осей.

fsurf(@(x,y) y.*sin(x)-x.*cos(y),[-2*pi 2*pi])
title('ysin(x) - xcos(y) for x and y in [-2\pi,2\pi]')
xlabel('x');
ylabel('y');
zlabel('z');
box on

Установите значения деления оси X и сопоставленные метки с помощью свойств XTickLabel и XTick объекта осей. Доступ к объекту осей с помощью gca. Точно так же установите значения деления оси Y и сопоставленные метки.

ax = gca;
ax.XTick = -2*pi:pi/2:2*pi;
ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};

ax.YTick = -2*pi:pi/2:2*pi;
ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};

Постройте график параметрической поверхности с различными стилями линии для различных значений. Поскольку, используйте пунктирную зеленую строку для поверхностных краев. Поскольку, выключите края путем установки свойства EdgeColor на 'none'.

funx = @(u,v) u.*sin(v);
funy = @(u,v) -u.*cos(v);
funz = @(u,v) v;

fsurf(funx,funy,funz,[-5 5 -5 -2],'--','EdgeColor','g')
hold on
fsurf(funx,funy,funz,[-5 5 -2 2],'EdgeColor','none')
hold off

Постройте график параметрической поверхности

Присвойте параметризованный функциональный объект подложки переменной.

x = @(u,v) exp(-abs(u)/10).*sin(5*abs(v));
y = @(u,v) exp(-abs(u)/10).*cos(5*abs(v));
z = @(u,v) u;
fs = fsurf(x,y,z)

fs = 
  ParameterizedFunctionSurface with properties:

    XFunction: @(u,v)exp(-abs(u)/10).*sin(5*abs(v))
    YFunction: @(u,v)exp(-abs(u)/10).*cos(5*abs(v))
    ZFunction: @(u,v)u
    EdgeColor: [0 0 0]
    LineStyle: '-'
    FaceColor: 'interp'

  Show all properties

Измените интервал графического изображения для u к [-30 30] путем установки свойства URange объекта. Добавьте прозрачность к поверхности путем установки свойства FaceAlpha на значение между 0 (прозрачный) и 1 (непрозрачный).

fs.URange = [-30 30];

fs.FaceAlpha = .5;

Покажите контуры ниже объемной поверхностной диаграммы путем установки опции 'ShowContours' на 'on'.

f = @(x,y) 3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...
    - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)...
    - 1/3*exp(-(x+1).^2 - y.^2);
fsurf(f,[-3 3],'ShowContours','on')

Управляйте разрешением объемной поверхностной диаграммы с помощью опции 'MeshDensity'. Увеличение 'MeshDensity' может сделать более сглаженные, более точные графики, в то время как уменьшение его может увеличить скорость графического изображения.

Разделите фигуру на два использования subplot. В первом подграфике постройте график параметрической поверхности. Поверхность имеет большой разрыв. Устраните эту проблему путем увеличения 'MeshDensity' до 40 во втором подграфике. fsurf заполняет разрыв, показывая, что путем увеличения 'MeshDensity' вы увеличили разрешение.

subplot(2,1,1)
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s))
view(-172,25)
title('Default MeshDensity = 35')

subplot(2,1,2)
fsurf(@(s,t) sin(s), @(s,t) cos(s), @(s,t) t/10.*sin(1./s),'MeshDensity',40)
view(-172,25)
title('Increased MeshDensity = 40')

Входные параметры

свернуть все

3-D функция, чтобы построить график, заданный как указатель на функцию к именованной или анонимной функции.

Задайте функцию формы z = f(x,y). Функция должна принять два матричных входных параметра и возвратить матричный выходной аргумент, одного размера. Используйте операторы массивов вместо матричных операторов для лучшей производительности. Например, используйте .* (times) вместо * (mtimes).

Пример: f = (x, y) sin (x) + because(y);

Графическое изображение интервала для x и y, заданного в одной из следующих форм:

  • Вектор формы [min max] — Использование интервал [min max] и для x и для y

  • Вектор формы [xmin xmax ymin ymax] — Использование интервал [xmin xmax] для x и [ymin ymax] для y.

Параметрическая функция для координат x, заданных как указатель на функцию к именованной или анонимной функции.

Задайте функцию формы x = funx(u,v). Функция должна принять два матричных входных параметра и возвратить матричный выходной аргумент, одного размера. Используйте операторы массивов вместо матричных операторов для лучшей производительности. Например, используйте .* (times) вместо * (mtimes).

Пример: funx = (u, v) u. *sin (v);

Параметрическая функция для координат y, заданных как указатель на функцию к именованной или анонимной функции.

Задайте функцию формы y = funy(u,v). Функция должна принять два матричных входных параметра и возвратить матричный выходной аргумент, одного размера. Используйте операторы массивов вместо матричных операторов для лучшей производительности. Например, используйте .* (times) вместо * (mtimes).

Пример: funy = (t) (u, v)-u. *cos (v);

Параметрическая функция для координат z, заданных как указатель на функцию к именованной или анонимной функции.

Задайте функцию формы z = funz(u,v). Функция должна принять два матричных входных параметра и возвратить матричный выходной аргумент, одного размера. Используйте операторы массивов вместо матричных операторов для лучшей производительности. Например, используйте .* (times) вместо * (mtimes).

Пример: funz = (u, v) v;

Графическое изображение интервала для u и v, заданного в одной из следующих форм:

  • Вектор формы [min max] — Использование интервал [min max] и для u и для v

  • Вектор формы [umin umax vmin vmax] — Использование интервал [umin umax] для u и [vmin vmax] для v.

Объект осей. Если вы не задаете объект осей, то fsurf использует текущую систему координат.

Спецификация строки, заданная как вектор символа или строка со стилем линии, маркером и цветом. Элементы могут появиться в любом порядке, и можно не использовать одну или несколько опций. Чтобы показать только маркеры без соединительных линий, задайте маркер и не используйте стиль линии.

Пример: 'r - o' задает красный цвет, пунктирную линию и круговые маркеры

Спецификатор стиля линииОписание
-Сплошная линия (значение по умолчанию)
--Пунктирная линия
:Пунктирная линия
-.Штрихпунктирная линия
Спецификатор маркераОписание
oКруг
+Знак «плюс»
*Звездочка
.Точка
xКрест
sКвадрат
dРомб
^Треугольник, направленный вверх
vНисходящий треугольник
>Треугольник, указывающий вправо
<Треугольник, указывающий влево
pПентаграмма
hГексаграмма
\color{specifier}Описание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Маркер', 'o', 'MarkerFaceColor', 'красный'

Список свойств здесь является только подмножеством. Для полного списка смотрите свойства FunctionSurface Properties orParameterizedFunctionSurface.

Количество оценки указывает на направление, заданное как номер. Значением по умолчанию является 35. Поскольку объекты fsurf используют адаптивную оценку, фактическое количество точек оценки больше.

Пример: 100

Отобразите контурный график в соответствии с графиком, заданным как 'off' (значение по умолчанию) или 'on'.

Цвет линии, заданный как 'interp', триплет RGB или один из перечисленных в таблице параметров цвета. Значение триплета RGB по умолчанию [0 0 0] соответствует черный. Значение 'interp' окрашивает края на основе значений ZData.

Для пользовательского цвета укажите триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Стиль линии, заданный как одна из опций, перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая строкаНикакая строка

Ширина линии, заданная в виде положительного значения в точках. Если у линии есть маркеры, ширина линии также влияет на края маркера.

Пример: 0.75

Символ маркера, заданный как один из маркеров, перечислен в этой таблице. По умолчанию объект не отображает маркеры. Определение символа маркера добавляет маркеры в точках пересечения строк mesh.

ЗначениеОписание
OКруг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
XКрест
square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
VНисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' or 'h'Шестиконечная звезда (гексаграмма)
'none'Никакие маркеры

Пример: '+'

Пример: 'ромб'

Размер маркера, заданный как положительное значение в точках.

Пример: 10

Выходные аргументы

свернуть все

Один или несколько FunctionSurface или объекты ParameterizedFunctionSurface, возвращенные как скаляр или вектор.

  • При использовании синтаксис fsurf(f) или изменение этого синтаксиса, то fsurf возвращает объекты FunctionSurface.

  • При использовании синтаксис fsurf(funx,funy,funz) или изменение этого синтаксиса, то fsurf возвращает объекты ParameterizedFunctionSurface.

Можно использовать эти объекты запросить и изменить свойства определенной поверхности. Для списка свойств смотрите FunctionSurface Properties и ParameterizedFunctionSurface Properties.

Введенный в R2016a

Была ли эта тема полезной?