主要内容

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

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

  1. 创建一个金宝appSimulink.data.Dictionary对象,该对象表示目标字典。

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

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

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

以编程方式与之交互嵌入式编码器部分数据字典,看到的通过编程方式创建数据接口配置(嵌入式编码)

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

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

    myDictionaryObj = 金宝appSimulink.data.dictionary.open (“myDictionary_ex_API.sldd”);dDataSectObj = getSection (myDictionaryObj,设计数据的);
  2. 在设计数据的部分myDictionary_ex_API.sldd,添加条目myNewEntry与价值237年

    addEntry (dDataSectObj“myNewEntry”,237)

重命名数据字典条目

重命名一个条目在设计数据、配置或其他数据字典的数据部分。

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

    myDictionaryObj = 金宝appSimulink.data.dictionary.open (“myDictionary_ex_API.sldd”);dDataSectObj = getSection (myDictionaryObj,设计数据的);fuelFlowObj = getEntry (dDataSectObj,“fuelFlow”);
  2. 重命名数据字典条目。

    fuelFlowObj。Name =“fuelFlowNew”;

增量数据字典条目的价值

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

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

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

    setValue (fuelFlowObj、临时)

数据字典管理

使用金宝appSimulink.data.Dictionary对象与整个数据字典。

目标 使用
代表现有数据字典金宝appSimulink.data.Dictionary对象

金宝appSimulink.data.dictionary.open

创建和表示数据字典金宝appSimulink.data.Dictionary对象

金宝appSimulink.data.dictionary.create

与数据字典

金宝appSimulink.data.Dictionary

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

importFromBaseWorkspace方法

添加引用字典数据字典

addDataSource方法

删除引用字典从数据字典

removeDataSource方法

保存修改数据字典

saveChanges方法

丢弃更改数据字典

discardChanges方法

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

listEntry方法

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

importEnumTypes方法

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

filepath方法

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

显示方法

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

隐藏方法

数据字典和之间的紧密联系金宝appSimulink.data.Dictionary对象

关闭方法

识别开放数据字典

金宝appSimulink.data.dictionary.getOpenDictionaryPaths

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

金宝appSimulink.data.dictionary.closeAll

字典管理部分

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

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

getSection方法

与数据字典

金宝appSimulink.data.dictionary.Section

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

importFromFile方法

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

exportToFile方法

从数据字典中删除条目

deleteEntry方法

数据字典节评估MATLAB表达式

evalin方法

在数据字典部分搜索条目

找到方法

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

存在方法

字典条目操作

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

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

getEntry方法

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

addEntry方法

操作数据字典条目

金宝appSimulink.data.dictionary.Entry

为数据字典条目分配新值

setValue方法

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

showChanges方法

更改保存到数据字典

saveChanges方法

丢弃更改数据字典条目

discardChanges方法

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

找到方法

返回值的数据字典条目

getValue方法

删除数据字典条目

deleteEntry方法

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

金宝appSimulink.data.dictionary.EnumTypeDefinition

过渡到使用数据字典

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

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

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

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

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

金宝appSimulink.data.assigninGlobal

评估MATLAB仿真软件模型的表达式上下文中金宝app

金宝appSimulink.data.evalinGlobal

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

金宝appSimulink.data.existsInGlobal

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

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

%定义模型名称和数据字典名称modelName =“f14”;dictionaryName =“myNewDictionary.sldd”;%加载目标模型load_system (modelName);%识别所有模型基本工作空间中定义的变量varsToImport = 金宝appSimulink.findVars (modelName,“SourceType”,“基础工作”);varNames = {varsToImport.Name};%创建数据字典dictionaryObj = 金宝appSimulink.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%第一行。%认为细胞A2、B1和B2定义断点名称和表名。bkpt1 =数据(2:结束,1);bkpt2 =数据(1、2:结束);表=数据(2:结束,2:结束);bkpt1Name =姓名{2,1};bkpt2Name ={1,2}名称;表名=姓名{2,};%准备导入设计目标数据的数据部分%的字典。myDictionaryObj = 金宝appSimulink.data.dictionary.open (dictionaryName);dDataSectObj = getSection (myDictionaryObj,设计数据的);%在字典中创建条目存储断点和进口%表。名称条目使用断点和表名进口%的工作簿。addEntry (dDataSectObj bkpt1Name bkpt1);addEntry (dDataSectObj bkpt2Name bkpt2);addEntry (dDataSectObj、表、表);%保存更改到字典并关闭它。saveChanges (myDictionaryObj)关闭(myDictionaryObj)
  3. 在MATLAB命令提示符下,创建一个数据字典存储查找表数据。

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

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

    显示(myDictionaryObj)

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

以编程方式分区数据字典

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

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

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

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

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

    dictionaryObj = 金宝appSimulink.data.dictionary.open (“myData.sldd”);configsSectObj = getSection (dictionaryObj,“配置”);entryObj = getEntry (configsSectObj,“myConfigs”);

  2. 存储目标的一个副本金宝appSimulink.ConfigSet对象在一个临时变量。

    temp = getValue (entryObj);

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

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

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

    setValue (entryObj、临时);

  5. 将更改保存到词典。

    saveChanges (dictionaryObj)

另请参阅

|||

相关的话题