fsurf

Постройте 3-D поверхность

Описание

пример

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.

Примеры

свернуть все

Постройте выражение sin(x)+cos(y) на интервале по умолчанию -5<x<5 и -5<y<5.

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

Figure contains an axes object. The axes object contains an object of type functionsurface.

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

erf(x)+cos(y)-5<x<0sin(x)+cos(y)0<x<5

-5<y<5.

Задайте интервал графического вывода как второй входной параметр 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

Figure contains an axes object. The axes object contains 2 objects of type functionsurface.

Постройте параметрированную поверхность

x=rcos(u)sin(v)y=rsin(u)sin(v)z=rcos(v)wherer=2+sin(7u+5v)

для 0<u<2π и 0<v<π. Добавьте свет в поверхность с помощью 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

Figure contains an axes object. The axes object contains an object of type parameterizedfunctionsurface.

Для x и y от -2π к 2π, постройте 3-D поверхность ysin(x)-xcos(y). Добавьте заголовок и подписи по осям и отобразите схему осей.

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

Figure contains an axes object. The axes object with title y s i n ( x ) blank - blank x c o s ( y ) blank f o r blank x blank a n d blank y blank i n blank [ - 2 pi , 2 pi ] contains an object of type functionsurface.

Установите значения деления оси 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'};

Figure contains an axes object. The axes object with title y s i n ( x ) blank - blank x c o s ( y ) blank f o r blank x blank a n d blank y blank i n blank [ - 2 pi , 2 pi ] contains an object of type functionsurface.

Постройте параметрическую поверхность x=usin(v), y=-ucos(v), z=v с различными стилями линии для различных значений vдля -5<v<-2, используйте пунктирную зеленую линию для поверхностных ребер. Для -2<v<2, выключите ребра путем установки 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

Figure contains an axes object. The axes object contains 2 objects of type parameterizedfunctionsurface.

Постройте параметрическую поверхность

x=e-|u|/10sin(5|v|)y=e-|u|/10cos(5|v|)z=u.

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

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)

Figure contains an axes object. The axes object contains an object of type parameterizedfunctionsurface.

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;

Figure contains an axes object. The axes object contains an object of type parameterizedfunctionsurface.

Покажите контуры ниже объемной поверхностной диаграммы путем установки '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')

Figure contains an axes object. The axes object contains an object of type functionsurface.

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

Создайте два графика в мозаичном размещении графика. В первом графике отобразите параметрическую поверхность x=sin(s), y=cos(s), z=(t/10)sin(1/s). Поверхность имеет большой разрыв. Устраните эту проблему путем увеличения 'MeshDensity' к 40 во втором графике. fsurf заполняет разрыв, показывая это путем увеличения 'MeshDensity' вы увеличили разрешение.

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

nexttile
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')

Figure contains 2 axes objects. Axes object 1 with title Default MeshDensity = 35 contains an object of type parameterizedfunctionsurface. Axes object 2 with title Increased MeshDensity = 40 contains an object of type parameterizedfunctionsurface.

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

свернуть все

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

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

Пример: f = @(x,y) sin(x) + cos(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 использует текущую систему координат.

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

Пример: '--or' красная пунктирная линия с круговыми маркерами

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

Sample of solid line

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

Sample of dashed line

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

Sample of dotted line

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

Sample of dash-dotted line, with alternating dashes and dots

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

Аргументы name-value

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

Пример: 'Marker','o','MarkerFaceColor','red'

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

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

Пример: 100

Отобразите контурный график в соответствии с графиком в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно истине и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

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

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

Sample of the color red

'green''g'[0 1 0]'#00FF00'

Sample of the color green

'blue''b'[0 0 1]'#0000FF'

Sample of the color blue

'cyan' 'c'[0 1 1]'#00FFFF'

Sample of the color cyan

'magenta''m'[1 0 1]'#FF00FF'

Sample of the color magenta

'yellow''y'[1 1 0]'#FFFF00'

Sample of the color yellow

'black''k'[0 0 0]'#000000'

Sample of the color black

'white''w'[1 1 1]'#FFFFFF'

Sample of the color white

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использование во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]'#D95319'

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]'#EDB120'

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]'#7E2F8E'

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]'#77AC30'

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]'#4DBEEE'

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]'#A2142F'

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

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

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

Sample of solid line

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

Sample of dashed line

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

Sample of dotted line

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

Sample of dash-dotted line, with alternating dashes and dots

'none'Никакая линияНикакая линия

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

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

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

МаркерОписаниеПолучившийся маркер
'o'Круг

Sample of circle marker

'+'Знак «плюс»

Sample of plus sign marker

'*'Звездочка

Sample of asterisk marker

'.'Точка

Sample of point marker

'x'Крест

Sample of cross marker

'_'Горизонтальная линия

Sample of horizontal line marker

'|'Вертикальная линия

Sample of vertical line marker

's'Квадрат

Sample of square marker

'd'Ромб

Sample of diamond line marker

'^'Треугольник, направленный вверх

Sample of upward-pointing triangle marker

'v'Нисходящий треугольник

Sample of downward-pointing triangle marker

'>'Треугольник, указывающий вправо

Sample of right-pointing triangle marker

'<'Треугольник, указывающий влево

Sample of left-pointing triangle marker

'p'Пентаграмма

Sample of pentagram marker

'h'Гексаграмма

Sample of hexagram marker

'none'Никакие маркерыНе применяется

Размер маркера в виде положительного значения в точках, где 1 точка = 1/72 дюйма.

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

свернуть все

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

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

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

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

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

Функции

Свойства

Введенный в R2016a
Для просмотра документации необходимо авторизоваться на сайте