quiver3

3-D дрожь или векторный график

  • 3-D Cartesian grid with plotted arrows

Описание

пример

quiver3(X,Y,Z,U,V,W) стрелы графиков с направленными компонентами UV, и W в Декартовых координатах, заданных XY, и Z. Например, первая стрела порождает из точки X(1), Y(1), и Z(1), расширяет в направлении x - ось согласно U(1), расширяет в направлении y - ось согласно V(1), и расширяет в направлении z - ось согласно W(1). По умолчанию, quiver3 функционируйте масштабирует длины стрелы так, чтобы они не перекрывались.

quiver3(Z,U,V,W) стрелы графиков с направленными компонентами, заданными UV, и W в равномерно распределенных точках вдоль поверхностного Z.

  • Если Z вектор, затем x-координаты диапазона стрел от 1 до числа элементов в Z и y-координаты являются всем 1.

  • Если Z матрица, затем x-координаты диапазона стрел от 1 до количества столбцов в Z и y-координаты лежат в диапазоне от 1 до количества строк в Z.

пример

quiver3(___,scale) настраивает длину стрел:

  • Когда scale положительное число, quiver3 функция автоматически настраивает длины стрел, таким образом, они не перекрываются, затем расширяет их на коэффициент scale. Например, scale из 2 удваивает длину стрел и scale из 0,5 половин длина стрел.

  • Когда scale 'off' или 0, такой как quiver3(X,Y,Z,U,V,W,'off'), затем автоматическое масштабирование отключено.

пример

quiver3(___,LineSpec) устанавливает стиль линии, маркер и цвет. Маркеры появляются в точках, заданных XY, и Z. Если вы задаете маркер с помощью LineSpecто quiver3 не отображает наконечники стрелки. Чтобы задать маркер и отобразить наконечники стрелки, установите Marker свойство вместо этого.

quiver3(___,LineSpec,'filled') заполняет маркеры, заданные LineSpec.

quiver3(___,Name,Value) задает свойства дрожи с помощью одного или нескольких аргументов пары "имя-значение". Для списка свойств смотрите Quiver Properties. Задайте аргументы пары "имя-значение" после всех других входных параметров. Аргументы пары "имя-значение" применяются ко всем стрелкам в графике полей градиента.

пример

quiver3(ax,___) создает график полей градиента в осях, заданных ax вместо текущей системы координат (gca). Аргумент ax может предшествовать любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

q = quiver3(___) возвращает Quiver объект. Этот объект полезен для управления свойствами графика полей градиента после создания его.

Примеры

свернуть все

Загрузите выборочные данные, которые представляют воздушные потоки по Северной Америке. В данном примере выберите подмножество данных.

load wind
X = x(5:10,20:25,6:10);
Y = y(5:10,20:25,6:10);
Z = z(5:10,20:25,6:10);
U = u(5:10,20:25,6:10);
V = v(5:10,20:25,6:10);
W = w(5:10,20:25,6:10);

Создайте 3-D график полей градиента подмножества, которое вы выбрали. Векторы XY, и Z представляйте местоположение основы каждой стрелы и UV, и W представляйте направленные компоненты каждой стрелы. По умолчанию, quiver3 функция сокращает стрелы, таким образом, они не перекрываются. Вызовите axis equal использовать равные единичные длины данных вдоль каждой оси. Это высказывает мнение стрел в правильном направлении.

quiver3(X,Y,Z,U,V,W)
axis equal

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

По умолчанию, quiver3 функция сокращает стрелы, таким образом, они не перекрываются. Отключить автоматическое масштабирование так, чтобы длины стрелы были определены полностью UV, и W, установите scale аргумент к 0.

Например, сначала возвратите x-, y-, и z-координаты сферы единичного радиуса с 10 10 поверхностями. Вычислите направленные компоненты его поверхностных нормалей с помощью surfnorm функция. Затем создайте 3-D график полей градиента без автоматического масштабирования.

[X,Y,Z] = sphere(10);
[U,V,W] = surfnorm(X,Y,Z);
quiver3(X,Y,Z,U,V,W,0)
axis equal

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

Для сравнения создайте график с автоматическим масштабированием. Обратите внимание на то, что стрелы короче и не перекрываются.

figure
quiver3(X,Y,Z,U,V,W)
axis equal

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

Постройте векторы, которые нормальны на поверхность, заданную функцией z=xe-x2-y2. Используйте quiver3 функционируйте, чтобы построить векторы и surf функционируйте, чтобы построить поверхность.

Во-первых, создайте сетку x-и y-значений, которые равномерно распределены. Используйте их, чтобы вычислить z. Затем найдите векторы нормали.

[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.*exp(-X.^2 - Y.^2);
[U,V,W] = surfnorm(X,Y,Z);

Отобразите векторы как 3-D график полей градиента. Затем отобразите поверхность в тех же осях. Настройте отображение так, чтобы векторы казались нормальными на поверхность путем вызова axis equal.

quiver3(X,Y,Z,U,V,W)
hold on
surf(X,Y,Z)
axis equal

Figure contains an axes. The axes contains 2 objects of type quiver, surface.

Создайте 3-D график полей градиента и задайте цвет для стрел.

Например, сначала возвратите x-, y-, и z-координаты поверхности. Вычислите направленные компоненты его поверхностных нормалей с помощью surfnorm функция.

[X,Y] = meshgrid(-pi/2:pi/8:pi/2,-pi/2:pi/8:pi/2);
Z = sin(X) + cos(Y);
[U,V,W] = surfnorm(Z);

Затем создайте 3-D график полей градиента красными стрелками.

quiver3(X,Y,Z,U,V,W,'r')
axis equal

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

Начиная в R2019b, можно отобразить плиточное размещение графиков с помощью tiledlayout и nexttile функции. Вызовите tiledlayout функция, чтобы создать 1 2 мозаичное размещение графика. Вызовите nexttile функция, чтобы создать объект осей и возвратить объект как ax1. Создайте левый график путем передачи ax1 к quiver3 функция. Добавьте заголовок на график путем передачи осей title функция. Повторите процесс, чтобы создать правильный график.

[X,Y] = meshgrid(-2:0.25:0,-2:0.25:0);
Z1 = -0.5*(X.^2 + Y.^2);
[U1,V1,W1] = surfnorm(Z1);
Z2 = -X.*Y;
[U2,V2,W2] = surfnorm(Z2);

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
quiver3(ax1,X,Y,Z1,U1,V1,W1)
axis equal
title(ax1,'Left Plot')

% Right plot
ax2 = nexttile;
quiver3(ax2,X,Y,Z2,U2,V2,W2)
axis equal
title(ax2,'Right Plot')

Figure contains 2 axes. Axes 1 with title Left Plot contains an object of type quiver. Axes 2 with title Right Plot contains an object of type quiver.

Создайте 3-D график полей градиента и возвратите объект дрожи. Затем удалите наконечники стрелки и добавьте точечные маркеры в основе каждой стрелы.

[X,Y] = meshgrid(-3:0.5:3,-3:0.5:3);
Z = 0.2*(Y.^2 - X.^2);
[U,V,W] = surfnorm(Z);

q = quiver3(X,Y,Z,U,V,W);
axis equal
q.ShowArrowHead = 'off';
q.Marker = '.';

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

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

свернуть все

x-координаты базисов стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и ZUV, и W матрицы, затем quiver3 расширяет X и Y в матрицы. В этом случае, size(Z), size(U), size(V), и size(W) должен равняться [length(Y) length(X)]. Для получения дополнительной информации о расширяющихся векторах в матрицы, смотрите meshgrid.

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

y-координаты базисов стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и ZUV, и W матрицы, затем quiver3 расширяет X и Y в матрицы. В этом случае, size(Z), size(U), size(V), и size(W) должен равняться [length(Y) length(X)]. Для получения дополнительной информации о расширяющихся векторах в матрицы, смотрите meshgrid.

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

z-координаты базисов стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и Z матрица, затем size(Z) должен равняться [length(Y) length(X)].

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

x-компоненты стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и U матрица, затем size(U) должен равняться [length(Y) length(X)].

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

y-компоненты стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и V матрица, затем size(V) должен равняться [length(Y) length(X)].

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

z-компоненты стрел в виде скаляра, вектора или матрицы.

Если X и Y векторы и W матрица, затем size(W) должен равняться [length(Y) length(X)].

Если X и Y матрицы, затем XYZUV, и W должен быть одного размера.

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

Если вы задаете маркер с помощью LineSpecто quiver3 не отображает наконечники стрелки. Чтобы задать маркер и отобразить наконечники стрелки, установите Marker свойство вместо этого.

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

Стиль линииОписание
-Сплошная линия
--Пунктирная линия
:Пунктирная линия
-.Штрихпунктирная линия
МаркерОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
'p'Пентаграмма
'h'Гексаграмма
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Масштабный коэффициент стрелы в виде положительного числа или 'off'. По умолчанию, quiver3 функционируйте автоматически масштабирует стрелы, таким образом, они не перекрываются. quiver3 функция применяет масштабный коэффициент после того, как это автоматически будет масштабировать стрелы.

Определение scale совпадает с установкой AutoScaleFactor свойство объекта дрожи. Например, определение scale как 2 удваивает длину стрел. Определение scale как 0.5 половины длина стрел.

Чтобы отключить автоматическое масштабирование, задайте scale как 'off' или 0. Когда вы задаете любое из этих значений, AutoScale свойство объекта дрожи установлено в 'off' и длина стрелы определяется полностью UV, и W.

Целевые оси в виде Axes объект. Если вы не задаете оси, то quiver3 функционируйте использует текущую систему координат.

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

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

Пример: 'Color','r','LineWidth','1

Примечание

Перечисленные здесь свойства являются только подмножеством. Для полного списка смотрите Quiver Properties.

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

Пример: 0.75

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

  • 'on' — Отобразите векторы с наконечниками стрелки.

  • 'off' — Отобразите векторы без наконечников стрелки.

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

  • 'on' — Масштабируйте длину стрелы, чтобы соответствовать в заданных сеткой координатных данных и стрелах шкалы так, чтобы они не перекрывались. quiver или quiver3 функция затем применяет AutoScaleFactor к длине стрелы.

  • 'off' — Не масштабируйте длины стрелы.

Масштабный коэффициент в виде скаляра. Значение 2 удваивает длину стрел. Значение 0.5 половины длина стрел.

Это свойство оказывает влияние только если AutoScale свойство установлено в 'on'.

Пример 2

Советы

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

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

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