主要内容

堆叠表变量

在实时编辑器中将多个表变量的值合并到一个表变量中

说明

堆叠表变量任务使您能够以交互方式将多个表或时间表变量中的值堆叠到一个变量中。该任务会自动为您的实时脚本生成 MATLAB® 代码。生成代码使用 stack 函数。

堆叠变量意味着对指定变量中的值进行交错,形成一个输出变量。堆叠还会向输出添加一个指示变量。在输出的每一行中,指示变量的值指示输入的哪个变量提供了这些数据。下图显示堆叠表的结果。

Stack Table Variables task in Live Editor

打开任务

要在 MATLAB 编辑器中将堆叠表变量任务添加到实时脚本中,请执行以下操作:

  • 实时编辑器选项卡上,选择任务 > 堆叠表变量

  • 或者,在脚本的代码块中,键入相关关键字,例如 stack。从建议的命令自动填充项中选择堆叠表变量

示例

全部展开

此示例说明如何使用堆叠表变量实时编辑器任务来堆叠变量。它从一个输入表中的多个变量中获取值,并将它们合并到输出表中的一个变量中。

首先,从样本文件中加载表格,该表格列出了经历电力中断的电力公司客户的数量。样本数据按月汇总。该电力公司为美国的三个区域提供电力服务。因此有三个变量:NorthEastMidWestSouthEast,这三个变量分别列出了每个区域受影响的客户数量。

load customersByRegion.mat
customersByRegion
customersByRegion=6×4 table
        Month        NorthEast    MidWest    SouthEast
    _____________    _________    _______    _________

     October-2023       3492         565       1027   
    November-2023       2944        1293        834   
    December-2023       2559         936       1412   
     January-2024      12045       50117          0   
    February-2024       4931        1089        137   
       March-2024       3018         942        870   

将客户断电数据进行堆叠,使 NorthEastMidWestSouthEast 变量都放入输出表的一个变量中。

堆叠表变量任务添加到您的实时脚本中。

  • 要将 Month 变量的值复制到输出表的行中,请在任务中从其上方的下拉列表中选择 Constant

  • 要通过将来自 NorthEastMidWestSouthEast 变量的值堆叠到输出的一个变量中对这些值进行合并,请为每个变量选择 Stack

输出中堆叠变量的名称来自各输入变量名称的组合。

该任务还将输入变量的名称堆叠到一个名为 NorthEast_MidWest_SouthEast_Indicator 的新变量中,指示客户断电数据所在的区域。

Live Task
stackedTable=18×3 table
        Month        NorthEast_MidWest_SouthEast_Indicator    NorthEast_MidWest_SouthEast
    _____________    _____________________________________    ___________________________

     October-2023                  NorthEast                              3492           
     October-2023                  MidWest                                 565           
     October-2023                  SouthEast                              1027           
    November-2023                  NorthEast                              2944           
    November-2023                  MidWest                                1293           
    November-2023                  SouthEast                               834           
    December-2023                  NorthEast                              2559           
    December-2023                  MidWest                                 936           
    December-2023                  SouthEast                              1412           
     January-2024                  NorthEast                             12045           
     January-2024                  MidWest                               50117           
     January-2024                  SouthEast                                 0           
    February-2024                  NorthEast                              4931           
    February-2024                  MidWest                                1089           
    February-2024                  SouthEast                               137           
       March-2024                  NorthEast                              3018           
      ⋮

为输出表的变量赋予更有意义的名称。要重命名表变量,请使用 renamevars 函数。

customersOutage = renamevars(stackedTable, ...
                             ["NorthEast_MidWest_SouthEast_Indicator" "NorthEast_MidWest_SouthEast"], ...
                             ["Region" "CustomersOutage"])
customersOutage=18×3 table
        Month         Region      CustomersOutage
    _____________    _________    _______________

     October-2023    NorthEast          3492     
     October-2023    MidWest             565     
     October-2023    SouthEast          1027     
    November-2023    NorthEast          2944     
    November-2023    MidWest            1293     
    November-2023    SouthEast           834     
    December-2023    NorthEast          2559     
    December-2023    MidWest             936     
    December-2023    SouthEast          1412     
     January-2024    NorthEast         12045     
     January-2024    MidWest           50117     
     January-2024    SouthEast             0     
    February-2024    NorthEast          4931     
    February-2024    MidWest            1089     
    February-2024    SouthEast           137     
       March-2024    NorthEast          3018     
      ⋮

相关示例

参数

全部展开

从工作区中所有非空表和时间表的列表中指定输入表或时间表的名称。

为输入表或时间表中的每个变量指定要采取的动作。堆叠变量时,有三种可能的动作:

  • 常量 - 将变量复制到输出表或时间表中。在输出的行中所需的位置复制其值。

  • 堆叠 - 将变量中的值堆叠到输出的一个变量中。例如,如果您选择堆叠三个变量,其所有值都将放入输出的一个变量中。

  • 放弃 - 从输出中排除变量及其值。

版本历史记录

在 R2020a 中推出

全部展开

另请参阅

函数

实时编辑器任务

App