文档

以编程方式在字典中存储数据

一个数据字典存储模型万博1manbetx®模型数据,并提供比MATLAB数据管理功能®工作区(见基础工作区或模型什么是数据字典?)。以编程方式与数据字典:

  1. 创建一个万博1manbetxSimulink.data.Dictionary对象,该对象表示目标字典。

  2. 创建一个万博1manbetxSimulink.data.dictionary.Section对象,该对象表示目标部分,例如设计数据部分。使用对象与条目存储在部分并添加条目。

  3. 可选地,创建万博1manbetxSimulink.data.dictionary.Entry每个代表一个条目的对象在目标部分。使用这些对象与个体在目标部分的条目。

以编程方式访问变量的目的彻底阻止参数值,可以考虑使用万博1manbetxSimulink.SimulationInput修改变量的对象而不是通过编程接口的数据字典。看到优化、估计和扫描块参数值

你不能使用数据字典编程接口来访问嵌入式编码器部分数据字典。相反,看到嵌入式编码字典

数据字典的条目添加到设计数据部分

  1. 代表了数据字典的设计数据部分myDictionary_ex_API.sldd与一个万博1manbetxSimulink.data.dictionary.Section对象命名dDataSectObj

    myDictionaryObj =万博1manbetxSimulink.data.dictionary.open (“myDictionary_ex_API.sldd”);dDataSectObj = getSection (myDictionaryObj,设计数据的);
  2. 将一个条目添加到设计的数据部分myDictionary_ex_API.sldd一个条目myNewEntry与价值237年

    addEntry (dDataSectObj“myNewEntry”,237)

增量数据字典条目的价值

  1. 代表了数据字典条目fuelFlow与一个万博1manbetxSimulink.data.dictionary.Entry对象命名fuelFlowObjfuelFlow定义在数据字典吗myDictionary_ex_API.sldd

    myDictionaryObj = 万博1manbetxSimulink.data.dictionary.open (“myDictionary_ex_API.sldd”);dDataSectObj = getSection (myDictionaryObj,设计数据的);fuelFlowObj = getEntry (dDataSectObj,“fuelFlow”);
  2. 目标条目的值存储在一个临时变量。增加临时变量的值。

    temp = getValue (fuelFlowObj);temp = temp + 1;
  3. 设置目标条目使用临时变量的值。

    setValue (fuelFlowObj、临时)

数据字典管理

使用万博1manbetxSimulink.data.Dictionary对象与整个数据字典。

目标 使用
代表现有数据字典万博1manbetxSimulink.data.Dictionary对象

万博1manbetxSimulink.data.dictionary.open

创建和表示数据字典万博1manbetxSimulink.data.Dictionary对象

万博1manbetxSimulink.data.dictionary.create

与数据字典

万博1manbetxSimulink.data.Dictionary

从MATLAB基础工作区导入变量数据字典

万博1manbetxSimulink.data.Dictionary.importFromBaseWorkspace方法

添加引用字典数据字典

万博1manbetxSimulink.data.Dictionary.addDataSource方法

删除引用字典从数据字典

万博1manbetxSimulink.data.Dictionary.removeDataSource方法

保存修改数据字典

万博1manbetxSimulink.data.Dictionary.saveChanges方法

丢弃更改数据字典

万博1manbetxSimulink.data.Dictionary.discardChanges方法

查看条目列表存储在数据字典中

万博1manbetxSimulink.data.Dictionary.listEntry方法

导入枚举类型定义数据字典

万博1manbetxSimulink.data.Dictionary.importEnumTypes方法

返回的文件名和路径数据字典

万博1manbetxSimulink.data.Dictionary.filepath方法

在模型浏览器窗口显示数据字典

万博1manbetxSimulink.data.Dictionary.show方法

从模型资源管理器窗口隐藏数据字典

万博1manbetxSimulink.data.Dictionary.hide方法

数据字典和之间的紧密联系万博1manbetxSimulink.data.Dictionary对象

万博1manbetxSimulink.data.Dictionary.close方法

识别开放数据字典

万博1manbetxSimulink.data.dictionary.getOpenDictionaryPaths

关闭所有连接所有打开的数据字典

万博1manbetxSimulink.data.dictionary.closeAll

字典管理部分

数据字典存储数据条目中包含部分,默认情况下所有字典都至少三个部分命名设计数据,其他数据和配置。使用万博1manbetxSimulink.data.dictionary.Section部分对象与数据字典。

目标 使用
表示数据字典部分部分对象。

万博1manbetxSimulink.data.Dictionary.getSection方法

与数据字典

万博1manbetxSimulink.data.dictionary.Section

从MAT-file进口变量数据字典部分或MATLAB文件

万博1manbetxSimulink.data.dictionary.Section.importFromFile方法

出口在数据字典条目部分MAT-file或MATLAB文件

万博1manbetxSimulink.data.dictionary.Section.exportToFile方法

从数据字典中删除条目

万博1manbetxSimulink.data.dictionary.Section.deleteEntry方法

数据字典节评估MATLAB表达式

万博1manbetxSimulink.data.dictionary.Section.evalin方法

在数据字典部分搜索条目

万博1manbetxSimulink.data.dictionary.Section.find方法

确定是否在数据字典条目存在部分

万博1manbetxSimulink.data.dictionary.Section.exist方法

字典条目操作

一个变量,存储在一个数据字典被称为一个条目的字典。条目有附加属性存储状态信息,如时间和日期最后修改的条目。使用万博1manbetxSimulink.data.dictionary.Entry对象来操作数据字典条目。

目标 使用
表示数据字典条目条目对象

万博1manbetxSimulink.data.dictionary.Section.getEntry方法

添加数据字典条目部分和代表条目对象

万博1manbetxSimulink.data.dictionary.Section.addEntry方法

操作数据字典条目

万博1manbetxSimulink.data.dictionary.Entry

为数据字典条目分配新值

万博1manbetxSimulink.data.dictionary.Entry.setValue方法

显示数据字典条目所做的更改

万博1manbetxSimulink.data.dictionary.Entry.showChanges方法

更改保存到数据字典

万博1manbetxSimulink.data.Dictionary.saveChanges方法

丢弃更改数据字典条目

万博1manbetxSimulink.data.dictionary.Entry.discardChanges方法

数组中搜索的数据字典条目

万博1manbetxSimulink.data.dictionary.Entry.find方法

返回值的数据字典条目

万博1manbetxSimulink.data.dictionary.Entry.getValue方法

删除数据字典条目

万博1manbetxSimulink.data.dictionary.Entry.deleteEntry方法

在字典中存储枚举类型定义

万博1manbetxSimulink.data.dictionary.EnumTypeDefinition

过渡到使用数据字典

使用数据字典可以使编程与模型数据的交互。如果你链接模型字典:

  • 你可以不再与模型数据交互通过使用简单的命令在命令提示符。相反,您必须使用字典的编程接口(万博1manbetxSimulink.data.Dictionary)。

  • 当您选择字典财产允许访问基工作区(见继续使用基本的工作区中共享数据),根据目标数据的存储位置,您必须使用简单的命令或编程接口。

帮助从使用基本工作空间过渡到使用数据字典,考虑使用这些函数。功能操作模型数据与数据的存储位置无关。

目标 使用
改变数据字典条目或工作空间变量的值在仿真软件模型的上下文中万博1manbetx

万博1manbetxSimulink.data.assigninGlobal

评估MATLAB仿真软件模型的表达式上下文中万博1manbetx

万博1manbetxSimulink.data.evalinGlobal

确定存在的数据字典条目或工作空间变量仿真软件模型的上下文中万博1manbetx

万博1manbetxSimulink.data.existsInGlobal

以编程方式单一模型迁移到使用字典

改变从MATLAB仿真软件模型的数据源基础工作提升到一个新的数万博1manbetx据字典,使用这个示例代码作为模板。

%定义模型名称和数据字典名称modelName =“f14”;dictionaryName =“myNewDictionary.sldd”;%加载目标模型load_system (modelName);%识别所有模型基本工作空间中定义的变量varsToImport = 万博1manbetxSimulink.findVars (modelName,“SourceType”,“基础工作”);varNames = {varsToImport.Name};%创建数据字典dictionaryObj = 万博1manbetxSimulink.data.dictionary.create (dictionaryName);%导入到字典中定义的模型变量的基础%的工作区,并清除从基本工作空间变量[importSuccess, importFailure] = importFromBaseWorkspace (dictionaryObj,“varList”varNames,“clearWorkspaceVars”,真正的);字典%链接到模型中set_param (modelName“DataDictionary”,dictionaryName);

请注意

这段代码不迁移的定义枚举数据类型,用于定义模型变量。如果您导入模式枚举数据类型的变量数据字典但不迁移枚举类型定义,字典不便携,如果被别人可能无法正常工作。枚举数据类型定义迁移到一个数据字典,看到的枚举的数据字典

直接从外部文件导入词典

这个例子展示了如何使用一个定制的MATLAB函数直接从外部文件导入数据到数据字典不创建或改变变量的基本工作空间。

  1. 在一个表中创建一个二维查找表的微软®Excel®工作簿。使用左上角的表来提供名称的两个断点和表。使用B和行2列来存储两个断点,并使用其余的表来存储表。例如,您的查找表可能会看起来像这样:

    在当前文件夹保存工作簿my2DLUT.xlsx

  2. 这个自定义函数定义复制到一个MATLAB文件,并保存文件在当前文件夹importLUTToDD.m

    函数importLUTToDD (workbookFile dictionaryName)% IMPORTLUTTODD (workbookFile dictionaryName)进口数据%二维查找表从一个工作簿直接进入一个数据%的字典。二维查找表的工作簿%任何大小,但必须遵循一种标准格式。%在整个工作簿的第一单。(数据、名称~)= xlsread (workbookFile 1);%将原始输入数据划分为断点,桌子,和他们的%的名字。%假设断点1在第一列和断点2%第一行。%认为细胞A1、B1和B2定义断点名称和表名。bkpt1 =数据(2:结束,1);bkpt2 =数据(1、2:结束);表=数据(2:结束,2:结束);bkpt1Name =姓名{2,1};bkpt2Name ={1,2}名称;表名=姓名{2,};%准备导入设计目标数据的数据部分%的字典。myDictionaryObj = 万博1manbetxSimulink.data.dictionary.open (dictionaryName);dDataSectObj = getSection (myDictionaryObj,设计数据的);%在字典中创建条目存储断点和进口%表。名称条目使用断点和表名进口%的工作簿。addEntry (dDataSectObj bkpt1Name bkpt1);addEntry (dDataSectObj bkpt2Name bkpt2);addEntry (dDataSectObj、表、表);%保存更改到字典并关闭它。saveChanges (myDictionaryObj)关闭(myDictionaryObj)
  3. 在MATLAB命令提示符下,创建一个数据字典存储查找表数据。

    myDictionaryObj = 万博1manbetxSimulink.data.dictionary.create (“myLUTDD.sldd”);
  4. 调用自定义函数来查找表导入到新数据字典。

    importLUTToDD (“my2DLUT.xlsx”,“myLUTDD.sldd”)
  5. 在模型浏览器中打开数据字典。

    显示(myDictionaryObj)

    三个新条目存储进口断点和查找表。可以使用在这些条目二维查找表块。

以编程方式分区数据字典

分区数据字典为参考词典,使用这个示例代码作为模板。您可以使用参考字典使大型数据字典更易于管理,并包含了多个模型的标准化数据是有用的。

%定义一个父数据字典和两个的名字%参考数据字典parentDDName =“myParentDictionary.sldd”;typesDDName =“myTypesDictionary.sldd”;paramsDDName =“myParamsDictionary.sldd”;%创建父数据字典和一个% 万博1manbetxSimulink.data。Dictionary对象来表示它parentDD = 万博1manbetxSimulink.data.dictionary.create (parentDDName);%建立Simulink万博1manbetx.data.dictionary。部分对象来表示%的设计数据部分家长字典designData_parentDD = getSection (parentDD,设计数据的);%进口一些数据到父partDD_Data_ex_API.m的字典文件importFromFile (designData_parentDD“partDD_Data_ex_API.m”);%创建两个参考字典万博1manbetxSimulink.data.dictionary.create (typesDDName);万博1manbetxSimulink.data.dictionary.create (paramsDDName);%创建一个引用字典层次通过添加参考字典%到父字典addDataSource (parentDD typesDDName);addDataSource (parentDD paramsDDName);%迁移模型。万博1manbetx参数对象的父数据字典%参考字典paramEntries =找到(designData_parentDD,“价值”,“海尔集团”,“万博1manbetxSimulink.Parameter”);i = 1:长度(paramEntries) paramEntries(我)。数据源=“myParamsDictionary.sldd”;结束%迁移模型。万博1manbetxNumericType对象的父数据字典%参考字典typeEntries =找到(designData_parentDD,“价值”,“海尔集团”,“万博1manbetxSimulink.NumericType”);i = 1:长度(typeEntries) typeEntries(我)。数据源=“myTypesDictionary.sldd”;结束%保存所有更改父数据字典saveChanges (parentDD)

更改配置设置存储在字典中

你可以存储配置设置(一个万博1manbetxSimulink.ConfigSet对象)的配置部分中一个字典。改变以编程方式设置配置参数的设置:

  1. 创建一个万博1manbetxSimulink.data.dictionary.Entry对象代表配置设置(这是字典的条目)。例如,假设字典的名称myData.sldd和的名称万博1manbetxSimulink.ConfigSet对象是myConfigs

    dictionaryObj = 万博1manbetxSimulink.data.dictionary.open (“myData.sldd”);configsSectObj = getSection (dictionaryObj,“配置”);entryObj = getEntry (configsSectObj,“myConfigs”);

  2. 存储目标的一个副本万博1manbetxSimulink.ConfigSet对象在一个临时变量。

    temp = getValue (entryObj);

  3. 临时变量,修改配置参数(在本例中,设置目标停止时间20.)。

    set_param(临时“StopTime”,“20”);

  4. 使用临时变量覆盖配置中设置的字典。

    setValue (entryObj、临时);

  5. 将更改保存到词典。

    saveChanges (dictionaryObj)

另请参阅

|||

相关的话题

这个主题有帮助吗?