Data Store Read
从数据存储中读取数据
库:
Simulink /
Signal Routing
描述
Data Store Read 模块将数据从指定数据存储或其所选部分复制到其输出。多个 Data Store Read 模块可从同一个数据存储读取数据。
用来读取数据的源数据存储由 Data Store Memory 模块或定义数据存储的信号对象的位置决定。有关详细信息,请参阅数据存储和 Data Store Memory。
要从数据存储获取正确的结果,必须确保数据存储按照预期的顺序进行读取和写入。有关详细信息,请参阅对数据存储访问进行排序和 数据存储诊断。
您可以选择 Data Store Read、Data Store Write 或 Data Store Memory 模块来突出显示与其相关的模块。要在打开的图或新选项卡中显示相关模块,请在选择后出现的省略号上暂停。然后,从操作栏中选择相关模块 。当多个模块对应于所选模块时,将打开一个相关模块列表。您可以通过在文本框中输入搜索词来过滤相关模块列表。从列表中选择相关模块后,窗口焦点转至显示该相关模块的打开的图或新选项卡。
当 Data Store Read 模块读取维度参数值设置为 Inf
的 Data Store Memory 模块时,不支持元素选择选项卡。换句话说,Data Store Read 模块从数据存储中读取无界可变大小信号。
示例
Share Data Among Multiple Instances of a Reusable Algorithm
Use a Data Store Memory block to share data among multiple instances of an algorithm in a model.
Initialize, Reset, and Terminate State of Simulink Block
Use the Initialize Function, Reset Function, and Terminate Function blocks to respond to events in a Simulink model.
端口
输入
IdxN — 第 N 个索引信号
标量 | 向量
外部端口,用于指定选择的对应数据存储子元素的索引。
依存关系
要启用外部索引端口,请在元素选择选项卡上,选择启用索引。然后,在索引选项表的第 N 行中,将索引选项设置为索引向量(端口) 或起始索引(端口)。
数据类型: int8
| int16
| int32
| uint8
| uint16
输出
Port_1 — 来自指定数据存储的值
标量 | 向量 | 矩阵 | N 维数组
来自指定数据存储的值,在输出中提供与数据存储中相同的数据类型和维数。该模块同时支持实信号和复信号。您可以选择该模块是提供整个数据存储还是仅提供所选元素。
您可以将总线数组与 Data Store Read 模块结合使用。有关定义和使用总线数组的详细信息,请参阅使用总线数组组合非虚拟总线。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
参数
参数
数据存储名称 — 模块从中读取数据的数据存储的名称
A
(默认) | 数据存储的名称
指定此模块从中读取数据的数据存储的名称。旁边的列表列出了模型中与 Data Store Read 模块在同一级别或更高级别的 Data Store Memory 模块的名称。该列表中还包括基础工作区和模型工作区中的所有 Simulink.Signal
对象。要更改名称,请从该列表中选择名称,或者直接在编辑字段中输入名称。
当编译包含此模块的模型时,软件从该模块级别向上搜索模型,寻找具有指定数据存储名称的 Data Store Memory 模块。如果软件找不到这样的模块,它将在模型工作区和 MATLAB® 工作区中搜索具有相同名称的 Simulink.Signal
对象。如果软件找到信号对象,它将在模型的根级创建一个隐藏的 Data Store Memory 模块,此模块的属性由 Signal
对象指定,初始值设置为全零数组。该数组的维度从 Signal
对象的 Dimensions
属性继承。
如果软件既找不到 Data Store Memory 模块也找不到 Signal
对象,它将停止编译并引发错误。有关搜索路径的详细信息,请参阅符号解析。
编程用法
模块参数:DataStoreName |
类型:字符串 | 字符向量 |
值:数据存储名称 |
默认值:'A' |
Data Store Memory 模块 — Data Store Memory 模块名称
模块路径
此 参数 为只读。
此字段列出 Data Store Memory 模块,该模块对它要从中读取数据的存储进行了初始化。
对应的 Data Store Write 模块 — 对应的 Data Store Write 模块列表
模块路径
此 参数 为只读。
此字段列出符合以下条件的所有 Data Store Write 模块的路径:与此模块具有相同的数据存储名称,且在模型层次结构中位于同一子系统级别或其下的任何子系统中。点击此列表中的任何条目以在模型中突出显示对应的模块。
采样时间 — 采样时间
-1
(默认) | 标量 | 向量
采样时间,控制模块何时从数据存储中读取数据。值为 -1
表示继承采样时间。有关详细信息,请参阅 指定采样时间。
编程用法
模块参数:SampleTime |
类型:字符串 | 字符向量 |
值:标量 | 向量 |
默认值:'-1' |
元素选择
数组中的元素(总线中的信号) — 关联的数据存储中的元素
字符向量
关联的数据存储中元素的列表。对于包含数组的数据存储,您可以读取整个数据存储,也可以指定数据存储的一个或多个元素。对于总线数据类型的数据存储,您可以展开树视图以查看并选择总线元素。此列表在括号中显示每个元素的最大维度。
如果未选择启用索引,请选择一个元素并使用以下方法之一:
点击选择>> 在选定元素列表中显示该元素及其所有子元素。
使用指定要选择的元素编辑框指定您要选择进行读取的子元素。然后点击选择>>。
要选择多个元素,请对每个元素重复上述过程。
您也可以选择启用索引,然后选择单个元素,并使用索引选项参数动态指定子元素。
要刷新显示并反映对数据存储中使用的数组或总线的修改,请点击刷新。
依存关系
对此部分(数组中的元素或总线中的信号)的提示取决于数据存储中数据的类型。
编程用法
模块参数:DataStoreElements |
类型:字符串 | 字符向量 |
值:以井号分隔的元素列表(请参阅使用命令行指定。) |
默认值:'' |
指定要选择的元素 — 用于定义要选择的元素的 MATLAB 表达式
字符向量
输入 MATLAB 表达式以定义要读取的特定元素,然后点击选择>> 将该元素添加到选定元素表中。重复以上操作以选择其他元素。
例如,对于名为 DSM
、最大维度为 [3,5]
的数据存储,您可以在编辑框中输入表达式,如 DSM(2,4)
或 DSM([1 3],2)
。请参阅访问特定的总线和矩阵元素。
要应用元素选择,请点击确定或应用。
依存关系
仅当未选择启用索引时,才会出现指定要选择的元素编辑框。
编程用法
模块参数:DataStoreElements |
类型:字符串 | 字符向量 |
值:以井号分隔的元素列表(请参阅使用命令行指定。) |
默认值:'' |
选定元素 — 选定元素的列表
字符向量
您从数据存储中选择的元素。Data Store Read 模块图标为您指定的每个元素显示一个输出端口。
要更改列表中的总线或矩阵元素的顺序,请在列表中选择元素,然后点击向上或向下。更改列表中的元素顺序会同时更改端口的顺序。要移除某个元素,请点击删除。
依存关系
仅当未选择启用索引时,才会出现选定元素表。
编程用法
模块参数:DataStoreElements |
类型:字符串 | 字符向量 |
值:以井号分隔的元素列表(请参阅使用命令行指定。) |
默认值:'' |
启用索引 — 启用索引以指定要读取的数据存储元素的子元素
off
(默认) | on
选中此参数可启用类似于 Selector 模块所使用的索引,由此您可以使用一个或多个索引输入端口动态指定要读取的子元素的索引,以及使用模块对话框指定索引。选中此参数时,Data Store Read 模块只能从数据存储的单个元素(即总线中的单个信号)中进行读取。要使用动态索引从数据存储的多个元素中进行读取,请使用多个 Data Store Read 模块。
清除此参数可禁用 Selector 模块样式索引。您可以选择多个要读取的数据存储元素,但只能使用模块对话框来指定要读取哪些子元素。
注意
如果关联的数据存储只包含一个标量元素,请不要选择启用索引。
编程用法
模块参数:EnableIndexing |
类型:字符串 | 字符向量 |
值:"off" | "on" |
默认值:"off" |
维数 — 数据存储元素的维数
1
(默认) | 正整数
所选数据存储元素的维数。您必须显式指示此数目。
依存关系
仅当选中启用索引时,此参数才会启用。
编程用法
模块参数:NumberOfDimensions |
类型:字符串 | 字符向量 |
值:正整数 |
默认值:'1' |
索引模式 — 索引模式
从 1 开始 (默认) | 从 0 开始
选择索引模式。如果选择从 1 开始,则索引 1
指定输入向量的第一个元素。如果选择从 0 开始,则索引 0
指定输入向量的第一个元素。
依存关系
要启用此参数,请选择启用索引。
编程用法
参数:IndexMode
|
类型:字符串 | 字符向量 |
值:"Zero-based" | "One-based" |
默认值:'One-based'
|
索引选项 — 子元素的索引方法
索引向量(对话框) (默认) | 全选 | 索引向量(端口) | 起始索引(对话框) | 起始索引(端口)
按维度定义所选数据存储元素的子元素的索引方式。从列表中,选择:
菜单项 | 操作 |
---|---|
全选 | 读取所有子元素。 |
索引向量(对话框) | 启用索引列。输入包含要读取的子元素索引的向量。 |
索引向量(端口) | 相关索引端口定义要读取的子元素的索引。 |
起始索引(对话框) | 启用索引和输出大小列。输入要读取的子元素范围的起始索引和大小。 |
起始索引(端口) | 启用输出大小列。索引端口定义要读取的元素范围的起始索引。输入该范围的大小。 |
索引和输出大小列显示为具有相关性。
依存关系
要启用此参数,请选择启用索引。
编程用法
参数:IndexOptionArray
|
类型:字符串 | 字符向量 |
值: "Select all" | "Index vector (dialog)" | "Index vector (port)" | "Starting index (dialog)" | "Starting index (port)" |
默认值:'Index vector (dialog)'
|
索引 — 子元素的索引或起始索引
1
(默认) | 整数 | 整数向量
如果索引选项是索引向量(对话框),请输入包含要读取的每个子元素的索引的向量。
如果索引选项设置为起始索引(对话框),则输入要读取的子元素范围的起始索引。
依存关系
要启用此参数,请选择启用索引,并将维度的索引选项设置为索引向量(对话框) 或起始索引(对话框)。
编程用法
参数:IndexParamArray
|
类型:字符向量 |
值:元胞数组 |
默认值:'{ }'
|
输出大小 — 要读取的子元素范围的大小
1
(默认) | 整数
如果索引选项是起始索引(对话框) 或起始索引(端口),请输入要读取的子元素范围的大小。
依存关系
要启用此参数,请选择启用索引,并将维度的索引选项设置为起始索引(对话框) 或起始索引(端口)。
编程用法
模块参数:OutputSizeArray
|
类型:字符向量 |
值:元胞数组 |
默认值:'{ }'
|
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出R2024a: Data Store Read 模块支持对符号索引进行索引
现在,Data Store Read 模块在 Data Store Memory 模块使用符号维度时支持索引。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)