Main Content

streamslice

在切片平面中绘制流线图

  • Cartesian grid with plotted lines and arrows

说明

示例

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

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

示例

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

示例

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

示例

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

示例

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

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

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

示例

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

示例

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

示例

全部折叠

加载 wind 数据集,该数据集加载三维数组 uvwxyz,表示北美地区的气流。绘制沿 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)绘制流线图。使用 density2 绘制大约两倍于默认值的流线图。

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 的二维梯度。使用 xy 分量作为 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 轴坐标数据,指定为二维或三维数组。它必须为单调的,但不需要等距。

XYZUVW 的大小必须相同。

您可以使用 meshgrid 函数创建 XYZ 矩阵。

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

XYZUVW 的大小必须相同。

您可以使用 meshgrid 函数创建 XYZ 矩阵。

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

XYZUVW 的大小必须相同。

您可以使用 meshgrid 函数创建 XYZ 矩阵。

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

XYZUVW 的大小必须相同。

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

XYZUVW 的大小必须相同。

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

XYZUVW 的大小必须相同。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

输出参数

全部折叠

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

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

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

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

您可以将这些值传递给 streamline

扩展功能

版本历史记录

在 R2006a 之前推出