quiver3

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

  • 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. Для примера, a 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. Задайте аргументы пары "имя-значение" после всех других входных параметров. Аргументы пары "имя-значение" применяются ко всем стрелам на графике полей градиента.

пример

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 графики полей градиента выбранного подмножества. Векторы 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 графики полей градиента без автоматического масштабирования.

[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 графики полей градиента и верните объект 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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

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

Пример: 2

Совет

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

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

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