主要内容

拆分表格数据变量和应用功能

这个例子展示了如何从一个表由停电的区域和导致分裂停电数据成组。然后,它说明了如何应用函数来计算统计信息,每个组并收集在一个表中的结果。

加载停电数据

示例文件,outages.csv,包含代表在美国电力公司停电数据。该文件包含六列:地区OutageTime损失客户恢复时间, 和原因。读outages.csv到表。

t = readtable('outages.csv');

转变地区原因到分类数组和OutageTime恢复时间DateTime.阵列。显示前五行。

T.Region =分类(T.Region);T.Cause =分类(T.Cause);T.OutageTime =日期时间(T.OutageTime);T.RestorationTime =日期时间(T.RestorationTime);T(1:5,:)
ans =.5×6表地区OutageTime客户流失RestorationTime原因_________ ________________ ______ __________ ________________ _______________西南2002-02-01 12时18 458.98 1.8202e + 06 2002年2月7日16时50分冬季风暴东南2003-01-23○点49 530.14 2.1204e + 05的NaT冬季风暴东南2003-02-07 21:15 289.4 1.4294e + 05 2003-02-17 08:14冬季风暴西2004-04-06 05:44 434.81 3.4037e + 05 2004-04-06 06:10设备故障中西部2002年3月16日06:18 186.44 2.1275e + 05 2002-03-18 23:23严重的风暴

计算最大功率损耗

确定最大功率损失,由于在每个区域停电。当findgroups函数返回G,组数的向量从创建T.Region。当splitapply功能使用G分开T.Loss分成五组,对应于五个区域。splitapply应用最大函数应用于每个组并连接的最大功率损失到载体中。

G = findgroups(T.Region);maxLoss = splitapply(@最大,T.Loss,G)
maxLoss =5×110.4.×2.3141 2.3418 0.8767 0.2796 1.6659

计算最大功率损失由于引起停电。要指定原因是分组变量,使用表的索引。创建包含的最大功率损失及其原因的表。

T1 = T(:,'原因');[G,powerLosses] = findgroups(T1);powerLosses.maxLoss = splitapply(@最大,T.Loss,G)
powerLosses =10×2表原因maxLoss ________________ _______攻击582.63地震258.18能源应急11638设备故障16659火灾872.96严重的风暴8767.3雷雨23418未知23141风2796冬季风暴2883.7

powerLosses是一个表,因为T1.是一个表。您可以附加的最大损失为另一个表变量。

计算在每个区域中通过引起的最大功率损耗。要指定地区原因是分组变量,使用表的索引。创建包含的最大功率损失表,显示前15行。

T1 = T(:,{'地区''原因'});[G,powerLosses] = findgroups(T1);powerLosses.maxLoss = splitapply(@最大,T.Loss,G);powerLosses(1:15,:)
ans =.15×3的表地区原因maxLoss _________ ________________ _______中西部攻击0中西部能源应急2378.7中西部设备故障903.28中西部强风暴6808.7中西部雷雨15128中西部未知23141中西部风2053.8中西部的暴风雪669.25东北地区袭击405.62东北地区地震0东北亚能源应急11638东北地区设备故障794.36东北地区火872.96东北地区强风暴6002.4东北地区雷雨23418

客户的计算数量的影响

确定由事业和区域客户电力中断的影响。因为T.Loss包含值,包在一个匿名函数使用'omitnan'输入参数。

osumFcn = @(X)(总和(X,'omitnan'));powerLosses.totalCustomers = splitapply(osumFcn,T.Customers,G);powerLosses(1:15,:)
ans =.15×4表原因maxLoss totalCustomers地区_________ ________________ _______ ______________中西部攻击0 0中西部能源告急2378.7 6.3363e + 05中西部设备故障903.28 1.7822e + 05中西部强风暴6808.7 1.3511e + 07中西部雷雨15128 4.2563e + 06中西部未知23141 3.9505e +06中西部的风2053.8 1.8796e + 06中西部的暴风雪669.25 4.8887e + 06东北地区袭击405.62 2181.8东北地区地震0 0东北亚能源应急11638 1.4391e + 05东北地区设备故障794.36 3.9961e + 05东北地区火872.96 6.1292e + 05东北地区强风暴6002.4 2.7905e + 07东北地区雷雨23418 2.1885e + 07

停电计算平均持续时间

确定所有时间美国停电的平均持续时间。添加停电的平均持续时间到powerLosses。因为T.RestorationTime的NaT值,省略了所得计算平均持续时间时的值。

d = T.RestorationTime  -  T.OutageTime;H =小时(d);omeanFcn = @(X)(平均值(X,'omitnan'));powerLosses.meanOutage = splitapply(omeanFcn,H,G);powerLosses(1:15,:)
ans =.15×5表地区原因maxLoss totalCustomers meanOutage _________ ________________ _______ ______________ __________中西部攻击0 0 335.02中西部能源告急2378.7 6.3363e + 05 5339.3中西部设备故障903.28 1.7822e + 05 17.863中西部强风暴6808.7 1.3511e + 07 78.906中西部雷雨15128 4.2563e + 0651.245中西部未知23141 3.9505e + 06 30.892中西部风2053.8 1.8796e + 06 73.761中西部的暴风雪669.25 4.8887e + 06 127.58东北地区袭击405.62 2181.8 5.5117东北地区地震0 0 0东北亚能源应急11638 1.4391e + 05 77.345东北地区设备故障794.36 3.9961E + 05 87.204东北地区火872.96 6.1292e + 05 4.0267东北地区强风暴6002.4 2.7905e + 07 2163.5东北地区雷雨23418 2.1885e + 07 46.098

也可以看看

|||

相关例子

更多关于