主要内容

导入查找表数据MATLAB

控件中引用变量,可以从MATLAB工作区中的变量导入表和断点数据表和断点页。下面的示例演示如何从MATLAB工作区导入和导出标准格式和非标准格式的数据。

导入标准格式查找表数据

假设您在n-D lookup table块中指定了一个3-D查找表。

创建工作区变量以用作查找表的断点和表数据。

Table3d_map = 0 (2,4,3);Table3d_map (:,:,1) = [1 2 3 4;5 6 7 8];Table3d_map (:,:,2) = [11 12 13 14;15 16 17 18];Table3d_map (:,:,3) = [111 112 113 114;115 116 117 118];Bp3d_z =[0 10 20];Bp3d_x =[0 10 20 30];Bp3d_y =[400 6400];
打开“n-D查找表”块对话框,在“表和断点”选项卡中输入以下参数:

  • 表数据:table3d_map

  • 断点1:bp3d_y

  • 断点2:bp3d_x

  • 断点3:bp3d_z

点击编辑表和断点以打开Lookup Table Editor并显示来自工作区变量的数据。

传播标准格式查找表数据

当对查找表数据进行更改时,请考虑将更改传播回数据导入时使用的MATLAB工作空间变量文件>更新块数据

的表数据和断点数据集,也可以使用“查找表编辑器”编辑金宝app仿真软件。LookupTable的断点数据集金宝app仿真软件。断点对象,并将更改传播回该对象。

假设对从MATLAB工作区变量导入的查找表变量进行更改导入标准格式查找表数据.例如,将(1,1,1)中的数据值从133.将这个变化传播回table3d_map在工作区中的“查找表编辑器”工具条中,单击应用

导入非标准格式查找表数据

假设您在n-D lookup table块中指定了一个3-D查找表。创建工作区变量以用作查找表的断点和表数据。表数据的变量,table3d_map_custom,为二维矩阵。

Table3d_map_custom = 0 (6,4);Table3d_map_custom = [1 2 3 4;5 6 7 8;11 12 13 14;15 16 17 18;111 112 113 114;115 116 117 118];Bp3d_z =[0 10 20];Bp3d_x =[0 10 20 30];Bp3d_y =[400 6400];
打开n-D查找表块对话框,并在“表和断点”选项卡中输入以下参数。变换table3d_map_custom成三维矩阵的表格数据输入使用重塑命令。

  • 表数据:重塑(table3d_map_custom [2, 4, 3])

  • 断点1:bp3d_y

  • 断点2:bp3d_x

  • 断点3:bp3d_z

点击编辑表和断点以打开Lookup Table Editor并显示来自工作区变量的数据。

在“查找表编辑器”中将1更改为33。“查找表编辑器”通过维护表的副本来记录更改。从MATLAB中恢复变量值®工作区中,在“查找表编辑器”工具条中单击重新加载.若要使用已编辑的数据更新MATLAB工作区变量,请在“查找表编辑器”工具条中单击应用.不能将更改传播到table3d_map_custom,该工作区变量包含n-D Lookup table块的非标准表数据。要传播更改,必须注册驻留在MATLAB搜索路径上的自定义函数。详细信息请参见传播非标准格式查找表数据

传播非标准格式查找表数据

此示例演示如何将更改从查找表编辑器传播到非标准格式的工作区变量。假设你的Simulink金宝app®模型从导入非标准格式查找表数据是否有一个从二维工作空间变量获取其表数据的三维查找表table3d_map_custom.更新“查找表编辑器”中的查找表,并将这些更改传播回table3d_map_custom使用定制功能。

  1. 创建一个名为sl_customization.m有了这些内容。

    函数sl_customization(cm) cm. lookuptableeditorcustomizer。getTableConvertToCustomInfoFcnHandle{end+1} =…@myGetTableConvertInfoFcn;结束

    在这个函数中:

    • 这个论点厘米自定义管理器对象的句柄。

    • 句柄@myGetTableConvertInfoFcn添加到单元格数组中的函数句柄列表中cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle.可以为将句柄添加到单元格数组的函数使用任何字母数字名称。

  2. 在同一文件中,定义myGetTableConvertInfoFcn函数。

    function blkInfo = myGetTableConvertInfoFcn(blk,tableStr)allowTableConvertLocal = true;blkInfo。tableWorkSpaceVarName = 'table3d_map_custom';blkInfo。tableConvertFcnHandle = @myConvertTableFcn;结束

    myGetTableConvertInfoFcn函数返回blkInfo对象,其中包含三个字段。

    • allowTableConvertLocal-允许一个块的表数据转换。

    • tableWorkSpaceVarName—非标准表格格式的工作区变量的名称。

    • tableConvertFcnHandle—转换函数的句柄。

    allowTableConvertLocal设置为真正的,该块的表数据被转换为名称匹配的工作区变量的非标准格式tableWorkSpaceVarName.转换函数对应于句柄tableConvertFcnHandle指定。您可以为转换函数使用任何字母数字名称。

  3. 在同一文件中,定义myConvertTableFcn函数。此函数转换大小的三维查找表行*列*高度到二维大小变量(行*高)*列

    %将三维查找表从Simulink格式转换为%工作空间变量函数使用的非标准格式cMap 金宝app= myConvertTableFcn(data) %确定三维表数据的行号和列号mapDim = size(data);numCol = mapDim(2);numRow = mapDim(1)*mapDim(3)cMap = 0 (numRow, numCol);%将数据转换回二维矩阵cMap =重塑(data,[numRow,numCol]);结束
  4. sl_customization.m在MATLAB搜索路径上。可以为多个文件命名sl_customization.m在搜索路径上。详情请参见使用多个自定义函数的行为

  5. 在MATLAB命金宝app令提示符刷新Simulink自定义。

    sl_refresh_customizations
  6. 打开查找表块的“查找表编辑器”并选择文件>更新块数据.点击是的重写工作区变量table3d_map_custom

  7. 检查table3d_map_custom在基本工作区中。

    Table3d_map_custom = 33 2 3 4 5 6 7 8 11 12 13 14 15 16 17 18 111 112 113 114 115 116 117 118

    Lookup Table Editor中的更改已传播到工作区变量。

请注意

如果您没有覆盖工作区变量table3d_map_custom,系统会提示您将其替换为数值数据。点击是的中的表达式表数据字段与数值数据。点击没有如果您不希望“查找表编辑器”对表数据的更改出现在块对话框中。

使用多个自定义函数的行为

在MATLAB会话开始时,Simulink加载每一个金宝appsl_customization.m路径上的自定义文件并执行sl_customization函数。执行每个函数将为该会话建立自定义。

当你选择文件>更新块数据在“查找表编辑器”中,编辑器检查单元格数组中的函数句柄列表cm.LookupTableEditorCustomizer.getTableConvertToCustomInfoFcnHandle.如果单元格数组包含一个或多个函数句柄,则allowTableConvertLocal属性确定是否可以传播查找表编辑器中的更改。

  • 如果设置为真正的,然后将表数据转换为工作区变量中的非标准格式。

  • 如果设置为,则表数据不会在工作区变量中转换为非标准格式。

  • 如果设置为真正的另一个自定义函数指定它为时,“查找表编辑器”报告错误。

相关的话题