文档

导入查找表数据MATLAB

您可以通过在MATLAB工作区中的变量中导入表和分解数据表格和断点对话框的标签。以下示例显示了如何从MATLAB工作区导入和导出标准格式和非标准格式数据。

导入标准格式查找表数据

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

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

table3d_map =零(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

点击编辑表和断点打开查找表编辑器并显示工作区变量的数据。

传播标准格式查找表数据

当您更改查找表数据时,请考虑将更改传播回MATLAB工作区变量,从使用中导入数据文件>更新块数据

您还可以使用查找表编辑器编辑表数据和断点数据集万博1manbetxsimulink。可见以及断点数据集的万博1manbetxsimulink.breakpoint对象并将更改传播回对象。

假设您更改从MATLAB工作区变量导入的查找表变量导入标准格式查找表数据。例如,从(1,1,1)中更改数据的值133。传播此更改table3d_map在工作区中,选择文件>更新块数据。点击是的确认您要覆盖table3d_map

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

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

table3d_map_custom =零(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使用使用该表数据输入的三维矩阵重塑命令。

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

  • 断点1:bp3d_y

  • 断点2:bp3d_x

  • 断点3:bp3d_z

点击编辑表和断点打开查找表编辑器并显示工作区变量的数据。

在查找表编辑器中更改1至33。查找表编辑器通过维护表的副本来记录您的更改。从MATLAB恢复变量值®工作区,选择文件>重新加载块数据。要使用编辑数据更新MATLAB工作区变量,请选择文件>更新块数据在查找表编辑器中。你不能传播变化table3d_map_custom,包含N-D查找表块的非标准表数据的工作区变量。为了传播更改,您必须注册位于MATLAB搜索路径上的自定义功能。有关详细信息,请参阅传播非标准格式查找表数据

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

此示例显示了如何从查找表编辑器到非标准格式的工作区变量的传播变化。假设您的模拟万博1manbetx®来自导入非标准格式查找表数据有一个三维查找表,该表从二维工作区变量获取其表数据table3d_map_custom。在查找表编辑器中更新查找表,然后将这些更改传播回table3d_map_custom使用自定义功能。

  1. 创建一个名称的文件sl_customization.m这些内容。

    函数sl_customization(cm)cmm。结尾

    在此功能中:

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

    • 手柄@MyGetTableConvertInfofCn被添加到单元格数组中的函数句柄列表中cm. lookuptableeditorcustomizer.getTableConvertTocustomInfofcnHandle。您可以使用任何添加到单元格数组中的句柄的功能的字母数字名称。

  2. 在同一文件中,定义mygetTableConvertInfofCn功能。

    函数blkinfo = mygetTableConvertInfofcn(blk,tablest)blkinfo.AllowTableConvertLocal = true;blkinfo.tableworkspacevarname ='table3d_map_custom';blkinfo.tableconvertfcnhandle = @myconverttablefcn;结尾

    mygetTableConvertInfofCn函数返回Blkinfo包含三个字段的对象。

    • 允许TableConvertLocal- 允许块的表数据转换。

    • tableworkspacevarname- 指定具有非标准表格式的工作区变量的名称。

    • tableconvertfcnhandle- 指定转换功能的手柄。

    什么时候允许TableConvertLocal被设定为真的,该块的表数据将其名称匹配的工作区变量的非标准格式转换为tableworkspacevarname。转换功能对应于该手柄tableconvertfcnhandle指定。您可以为转换功能使用任何字母数字名称。

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

    %将3维查找表从simulink格式转换为工作区变量函数中使用的%非标准格式cmap 万博1manbetx= myConvertTableFcn(data)%确定3D表数据mapdim = size(data)的行和列号的行和列号;numcol = mapdim(2);numrow = mapdim(1)*mapdim(3);cmap = zeros(numrow,numcol);%将数据转换回二维矩阵CMAP = reshape(数据,[numrow,numcol]);结尾
  4. sl_customization.m在MATLAB搜索路径上。您可以有多个命名的文件sl_customization.m在搜索路径上。有关更多详细信息,请参阅具有多个自定义功能的行为

  5. 在MATLAB命万博1manbetx令提示符处刷新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 117 118

    查找表编辑器的更改已传播到工作区变量。

笔记

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

具有多个自定义功能的行为

在MATLAB会话开始时,Simulink加载每个万博1manbetxsl_customization.m路径上的自定义文件并执行sl_customization功能。执行每个函数都为该会话建立自定义。

当您选择时文件>更新块数据在查找表编辑器中,编辑器检查单元格数组中的函数句柄列表的cm. lookuptableeditorcustomizer.getTableConvertTocustomInfofcnHandle。如果单元格数组包含一个或多个功能处理,则允许TableConvertLocal属性确定查找表编辑器中是否可以传播的更改。

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

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

  • 如果将值设置为真的另一个自定义功能指定它是错误的,查找表编辑器报告了一个错误。

相关话题

这个话题有帮助吗?