主要内容

streamslice

R2026b

在切片平面中绘制流线图

  • Cartesian grid with plotted lines and arrows

描述

streamslice(X,Y,Z,U,V,W,xslice,yslice,zslice) 根据三维向量数据 U、V 和 W 绘制自动确定间距的流线图。指定 X、Y 和 Z 作为坐标数据。将 xslice、yslice 和 zslice 指定为与特定轴正交的切片位置。

示例

streamslice(U,V,W,xslice,yslice,zslice) 使用 U、V 和 W 的默认坐标数据。U、V、W 中每个元素的 (x,y,z) 位置分别基于列、行和页面索引。

streamslice(X,Y,U,V) 根据二维向量数据 U 和 V 绘制自动确定间距的流线图。指定 X 和 Y 作为坐标数据。

示例

streamslice(U,V) 使用 U 和 V 的默认坐标数据。U 和 V 中每个元素的 (x,y) 位置分别基于列索引和行索引。

示例

streamslice(___,density) 修改流线图的自动间距,其中 density 是正标量。默认值为 1。值越大,在每个平面上生成的流线图越多。例如,默认情况下,2 生成大约两倍的流线图,而 0.5 生成大约一半的流线图。

示例

streamslice(___,arrowsmode)(其中 arrowsmode 是 'noarrows')不绘制方向箭头。arrowsmode 的默认值为 'arrows',表示绘制方向箭头。此选项可与上述语法中的任何输入参量一起使用。

示例

streamslice(___,method) 指定插值方法,其中方法可以是 'linear'、'cubic' 或 'nearest'。

streamslice(ax,___) 在指定坐标区中而不是当前坐标区对象 (gca) 中绘图。

lineobj = streamslice(___) 返回创建的 Line 对象。

示例

[verts,averts] = streamslice(___) 以元胞数组形式返回用于绘制流线图和箭头的顶点。此语法不绘制流线图。

示例

示例

全部折叠

加载 wind 数据集,该数据集加载三维数组 u、v、w、x、y 和 z,表示北美地区的气流。绘制沿 z = 5 的切片平面的流线图。

load wind
streamslice(x,y,z,u,v,w,[],[],5)
axis tight

Figure contains an axes object. The axes object contains 94 objects of type line.

加载 wind 数据集,并沿切片平面(其中 z = 5)绘制不带方向箭头的流线图。

load wind
streamslice(x,y,z,u,v,w,[],[],5,'noarrows')
axis tight

Figure contains an axes object. The axes object contains 45 objects of type line.

加载 wind 数据集,并沿切片平面(其中 z = 5)绘制流线图。使用 density 值 2 绘制大约两倍于默认值的流线图。

load wind
streamslice(x,y,z,u,v,w,[],[],5,2)
axis tight

Figure contains an axes object. The axes object contains 175 objects of type line.

加载 wind 数据集并计算沿切片平面(其中 z = 1、5 和 10)的流线图的顶点。

load wind
[verts, ~] = streamslice(x,y,z,u,v,w,[],[],[1,5,10]);

将这些顶点传递给 streamtube 以将线条可视化为管图。

streamtube(verts,1)

view(3)
axis tight
shading interp
camlight
lighting gouraud

Figure contains an axes object. The axes object contains 161 objects of type surface.

绘制流线图并将返回的 Line 对象存储在 l 中。

[x,y] = meshgrid(-10:10);
u = 2.*x.*y;
v = y.^2 - x.^2;
l = streamslice(x,y,u,v);
axis tight

Figure contains an axes object. The axes object contains 112 objects of type line.

将流线图的线宽设置为 2。将其颜色设置为红色。使用 set 函数可以同时更改所有流线图的属性。

set(l,'LineWidth',2)
set(l,'Color','r');

Figure contains an axes object. The axes object contains 112 objects of type line.

首先,创建一个曲面图。

z = peaks;
surf(z);
shading interp;

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

计算 z 的二维梯度。使用 x 和 y 分量作为 streamslice 的向量数据输入。将流线图的颜色设置为黑色。

[u,v] = gradient(z);
l = streamslice(u,v);
set(l,'Color','k');

Figure contains an axes object. The axes object contains 153 objects of type surface, line.

对 z 轴上的流线图进行位移,使它们绘制在曲线的曲面上。

for i=1:length(l)
    zi = interp2(z,l(i).XData, l(i).YData);
    l(i).ZData = zi;
end

Figure contains an axes object. The axes object contains 153 objects of type surface, line.

输入参数

全部折叠

x 轴坐标数据,指定为二维或三维数组。它必须为单调的,但不需要等距。

X、Y、Z、U、V 和 W 的大小必须相同。

您可以使用 meshgrid 函数创建 X、Y 和 Z 矩阵。

y 轴坐标数据,指定为二维或三维数组。它必须为单调的,但不需要等距。

X、Y、Z、U、V 和 W 的大小必须相同。

您可以使用 meshgrid 函数创建 X、Y 和 Z 矩阵。

z 轴坐标数据,指定为三维数组。它必须为单调的,但不需要等距。

X、Y、Z、U、V 和 W 的大小必须相同。

您可以使用 meshgrid 函数创建 X、Y 和 Z 矩阵。

向量数据的 x 分量,指定为二维或三维数组。

X、Y、Z、U、V 和 W 的大小必须相同。

如果 U 包含 NaN 值,流线图可能不会出现。

向量数据的 y 分量,指定为二维或三维数组。

X、Y、Z、U、V 和 W 的大小必须相同。

如果 V 包含 NaN 值,流线图可能不会出现。

向量数据的 z 分量,指定为三维数组。

X、Y、Z、U、V 和 W 的大小必须相同。

如果 W 包含 NaN 值,流线图可能不会出现。

x 轴切片值,以下列形式之一指定:

  • 标量 - 在指定位置绘制一个与 x 轴正交的切片平面。

  • 向量 - 在指定位置绘制多个与 x 轴正交的切片平面。

  • [] - 不绘制任何切片平面。

y 轴切片值,以下列形式之一指定:

  • 标量 - 在指定位置绘制一个与 y 轴正交的切片平面。

  • 向量 - 在指定位置绘制多个与 y 轴正交的切片平面。

  • [] - 不绘制任何切片平面。

z 轴切片值,以下列形式之一指定:

  • 标量 - 在指定位置绘制一个与 z 轴正交的切片平面。

  • 向量 - 在指定位置绘制多个与 z 轴正交的切片平面。

  • [] - 不绘制任何切片平面。

流线图的密度,指定为正标量。

默认值为 1。值越大,在每个平面上生成的流线图越多。例如,默认情况下,2 生成大约两倍的流线图,而 0.5 生成大约一半的流线图。

箭头显示模式,指定为下列值之一:

  • 'arrows' - 在流线图上绘制方向箭头。

  • 'noarrows' - 不在流线图上绘制方向箭头。

插值方法,指定为下列值之一:

  • 'linear' - 在每个维度的相邻网格点进行线性插值。

  • 'cubic' - 在每个维度的相邻网格点进行三次插值。

  • 'nearest' - 最近的网格点值。

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 streamslice 在当前坐标区中绘图。

输出参量

全部折叠

流线图和方向箭头的 Line 对象,以数组形式返回。

流线图的顶点,以元胞数组形式返回。元胞数组的每个元素均为一个线条的顶点矩阵。

您可以将这些值传递给任何流线图绘制函数(streamline、streamribbon、streamtube)。

箭头顶点,以元胞数组形式返回。元胞数组的每个元素均为一个箭头的顶点矩阵。如果 arrowsmode 是 'noarrows',则 averts 是空元胞数组。

您可以将这些值传递给 streamline。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开