exponenta event banner

quiver3

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

  • 3-D Cartesian grid with plotted arrows

Описание

пример

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

quiver3(Z,U,V,W) отображает стрелки с направленными компонентами, заданными U, V, и 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) задает стиль линии, маркер и цвет. Маркеры отображаются в точках, указанных X, Y, и Z. При указании маркера с помощью LineSpec, то quiver3 не отображает стрелки. Чтобы задать маркер и отобразить стрелки, задайте Marker вместо этого свойство.

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

quiver3(___,Name,Value) задает свойства quiver, используя один или несколько аргументов пары имя-значение. Список свойств см. в разделе Свойства Quiver. Укажите аргументы пары имя-значение после всех других входных аргументов. Аргументы пары «имя-значение» применяются ко всем стрелкам на графике quiver.

пример

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

пример

q = quiver3(___) возвращает Quiver объект. Этот объект полезен для управления свойствами графика 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 quiver выбранного подмножества. Векторы X, Y, и Z представляют расположение основания каждой стрелки, и U, V, и 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 функция укорачивает стрелки, чтобы они не перекрывались. Отключение автоматического масштабирования так, чтобы длины стрелок полностью определялись U, V, и W, установите scale аргумент для 0.

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

[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 quiver. Затем отобразите поверхность в тех же осях. Настройте отображение таким образом, чтобы векторы отображались по нормали к поверхности путем вызова 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 quiver и укажите цвет стрелок.

Например, сначала возвращает координаты 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 quiver с красными стрелками.

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 quiver и верните объект quiver. Затем удалите стрелки и добавьте точечные маркеры в основание каждой стрелки.

[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 являются векторами и Z, U, V, и W являются матрицами, то quiver3 расширяется X и Y в матрицы. В этом случае size(Z), size(U), size(V), и size(W) должны равняться [length(Y) length(X)]. Дополнительные сведения о развертывании векторов в матрицы см. в разделе meshgrid.

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

Если X и Y являются матрицами, то X, Y, Z, U, V, и W должен быть одинакового размера.

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

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

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

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

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

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

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

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

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

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

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

Примечание

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

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

Пример: 0.75

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

  • 'on' - Отображение векторов со стрелками.

  • 'off' - Отображение векторов без стрелок.

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

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

  • 'off' - Не масштабировать длины стрелок.

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

Это свойство действует только в том случае, если AutoScale свойство имеет значение 'on'.

Пример: 2

Совет

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

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

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