streamparticles
绘制流粒子
语法
说明
streamparticles(___, 通过使用一个或多个名称-值参量设置属性来修改流粒子动画和外观。例如,您可以使用 Name,Value)Marker 属性设置粒子的形状。需要在上述任一语法中的所有参量之后指定名称-值参量。有关属性列表,请参阅 Line 属性。
streamparticles( 使用目标对象创建流粒子图。如果目标对象是 target,___)Axes 对象,则 MATLAB® 在指定的坐标区中而不是当前坐标区 (gca) 中绘图。如果目标对象是 Line 对象,则更新线条属性以创建流粒子,而不是创建新 Line 对象。
返回包含所有粒子顶点的 lineobj = streamparticles(___)Line 对象。
示例
创建两条流线图的顶点,指定为 15×2 矩阵中的 x 和 y 坐标。将 streamparticles 的顶点输入定义为元胞数组,其中每个元素表示一条流线。
x = linspace(0,2*pi,15);
y1 = sin(x);
y2 = sin(x) + 1;
s1 = [x;y1]';
s2 = [x;y2]';
verts = {s1,s2};在流线图的每个顶点上绘制粒子。
streamparticles(verts);

使用位置和速度矩阵定义一个向量场。使用 streamslice 生成向量场中流线图的顶点,并将顶点存储在 verts 中。
[x,y] = meshgrid(-10:10); u = 2.*x.*y; v = y.^2 - x.^2; [verts,~] = streamslice(x,y,u,v);
用 streamline 绘制流线图。然后,用 streamparticles 绘制 100 个粒子。默认情况下,粒子均匀分布在所有顶点上。
streamline(verts); streamparticles(verts,100);

对于同一个向量场,通过将 ParticleAlignment 属性设置为 "on",在具有最多顶点的流线图上均匀绘制五个粒子。streamparticles 函数使用该间距在其余流线图上绘制粒子。
streamline(verts); streamparticles(verts,5,"ParticleAlignment","on");

对于同一个向量场,将 5% 的流线图顶点绘制为粒子。
streamline(verts); streamparticles(verts,0.05);

创建向量场的顶点,并绘制其流线图和流粒子。通过分别设置 Animate 和 FrameRate 属性,以每秒 30 帧的速度为粒子设置五次迭代的动画。
[x,y] = meshgrid(-10:10); u = 2.*x.*y; v = y.^2 - x.^2; [verts,~] = streamslice(x,y,u,v); streamline(verts); streamparticles(verts,100,"Animate",5,"FrameRate",30);

创建向量场的顶点,并绘制其流线图和流粒子。通过设置 Marker 和 MarkerEdgeColor 属性,对粒子使用绿色星号标记。
[x,y] = meshgrid(-10:10); u = 2.*x.*y; v = y.^2 - x.^2; [verts,~] = streamslice(x,y,u,v); streamline(verts); streamparticles(verts,150,"Marker","*","MarkerEdgeColor",[0 0.5 0]);

输入参数
流线图坐标数据,指定为元胞数组(由 stream2、stream3 或 streamslice 返回)。元胞数组的每个元素是定义一个流线图的二维或三维顶点的矩阵,其中每行表示一个粒子的坐标。
流粒子的数量,指定为正值。
如果
n大于1,则streamparticles绘制大约n个粒子。如果
n小于或等于1,则streamparticles将一定百分比的顶点绘制为粒子。例如,如果n为0.2,则streamparticles绘制大约 20% 的顶点。
默认情况下,streamparticles 在所有流线图顶点上均匀绘制由 n 确定的粒子数。但是,如果将 ParticleAlignment 属性设置为 "on",streamparticles 会在顶点最多的流线图上均匀绘制粒子,然后将该粒子间距用于其他流线图。
目标对象,指定为 Axes 或 Line 对象。
Axes对象 -streamparticles在指定坐标区而不是当前坐标区中绘图。Line对象 - 更新线条属性以创建流粒子,而不是创建新Line对象。
您可以在 streamparticles 图中显示图例,方法是创建一个 Line 对象,调用 legend,然后以该行作为目标对象调用 streamparticles。
名称-值参数
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: streamparticles(verts,MarkerFaceColor="blue") 为流粒子指定蓝色标记。
如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: streamparticles(verts,"MarkerFaceColor","blue") 为流粒子指定蓝色标记。
注意
此处列出的线条属性只是可以更改粒子外观的部分属性。有关完整列表,请参阅 Line 属性。
动画迭代次数,指定为非负整数。默认情况下,Animate 的值为 0,这表示没有流粒子运动。如果值为 Inf,动画将继续,直到您按下 Ctrl+C。
每秒动画帧数,指定为非负整数。默认情况下,FrameRate 的值为 Inf,它会尽可能快地绘制动画,具体速度取决于运行 streamparticles 的计算机的限制。
流线图上粒子的对齐,指定为 "off" 或 "on"。
如果
ParticleAlignment为"off",则n确定在所有流线图顶点上均匀分布的粒子数。如果
ParticleAlignment为"on",则n确定在顶点最多的流线图上均匀分布的粒子数。streamparticles函数使用此间距在其余流线图上绘制粒子。
标记符号,指定为下表中列出的值之一。默认情况下,粒子显示为圆形。如果标记符号没有填充面,例如 "*",则必须指定标记的边缘颜色。
| 标记 | 描述 | 生成的标记 |
|---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
标记轮廓颜色,指定为 "none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,没有标记轮廓颜色。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符向量或字符串标量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
标记填充颜色,指定为 "red"、"none"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认情况下,标记填充颜色为红色。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符向量或字符串标量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
扩展功能
streamparticles 函数支持 GPU 数组输入,但有以下用法说明和限制:
此函数接受 GPU 数组,但不在 GPU 上运行。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
streamparticles 函数支持分布式数组输入,但有以下用法说明和限制:
此函数在分布式数组上运行,但在客户端 MATLAB 上执行。
有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
























