主要内容

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

此示例显示如何按区域和电源驱动的原因将从表中的耗尽数据拆分为组。然后它显示了如何应用函数来计算每个组的统计信息,并在表中收集结果。

负载耗电数据

示例文件,中断.CSV,包含代表美国电效用中断的数据。该文件包含六列:地区过剩失利顾客恢复时间, 和原因。读中断.CSV进入桌子。

t = readtable('outages.csv');

兑换地区原因到分类阵列,和过剩恢复时间约会时间阵列。显示前五行。

t.region =分类(t.region);t.cause =分类(t.cause);t.outageTime = datetime(t.outageTime);t.restiontime = datetime(t.restiontime);T(1:5,:)
ans =.5×6表地区OutageTime损失客户恢复时间_______________________________________________________________________________________________________02-07 16:50冬季风暴东南2003-01-23 00:49 530.14 2.1204E + 05Nat冬季风暴东南2003-02-07 21:15 289.4 1.4294E + 05 2003-02-17 08:14冬季风暴West 2004-04-06 05:44 434.81 3.4037E + 05 2004-04-06 06:10设备故障2002-03-16 06:18 186.44 2.1275E + 05 2002-03-18 23:23严重风暴

计算最大功率损耗

根据每个区域的停电,确定最大的功率损失。这findgroups.函数返回G,从中创建的组数字的向量T.Region.。这裂开功能使用G分开T.Loss.分为五组,对应五个地区。裂开适用最大限度函数到每个组并将最大功率损耗连接到向量中。

g = findgroups(t.region);maxloss = sclustapply(@ max,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 = sclustapply(@ max,t.loss,g)
Powerlosses =10×2表原因Maxloss ______________________攻击582.63地震258.18能源紧急11638设备故障16659 Fire 872.96严重风暴8767.3雷暴23418未知23141风2796冬季风暴2883.7

Powerlosses.是一张桌子,因为T1.是一张桌子。您可以将最大损耗作为另一个表变量附加。

计算每个区域的原因最大功率损耗。指明地区原因是分组变量,使用表索引。创建一个表,其中包含最大功率损耗并显示前15行。

t1 = t(:,{'地区''原因'});[g,powerlosses] = findgroups(t1);powerlosses.maxloss = sclustapply(@ max,t.loss,g);Powerlosses(1:15,:)
ans =.15×3表地区原因Maxloss _________ __________________ _中西部攻击0中西部能源紧急情况2378.7中西部设备故障903.28中西部严重风暴6808.7中西部雷暴风暴15128中西部未知23141中西风669.25东北地震405.62东北地震0东北地震急急11638东北装备故障794.36东北火灾872.96东北重症风暴6002.4东北迅雷风暴23418

计算受影响的客户数量

通过原因和地区确定对客户的电力缓解影响。因为T.Loss.包含价值观,包装在匿名功能中使用'omitnan'输入参数。

OSUMFCN = @(x)(sum(x,'omitnan'));powerlosses.totalcustomers = Splitapply(Osumfcn,T.Customers,G);Powerlosses(1:15,:)
ans =.15×4表区域导致最大总理_________ _________________________________中西部攻击0 0中西部能源紧急2378.7 6.3363E + 05中西设备故障903.28 1.7822E + 05中西部严重风暴6808.7 1.3511E + 07中西部雷霆风暴15128 4.2563E + 06中西部0 +06中西风2053.8 1.8796E + 06中西冬风暴669.25 4.8887E + 06东北攻击405.62 2181.8东北地震0 0东北能源ENCREATY 11638 1.4391E + 05东北装备故障794.36 3.9961E + 05东北火灾872.96 6.1292E + 05东北严重风暴6002.4 2.7905E + 07东北迅雷风暴23418 2.1885E + 07

计算出电源停电的平均持续时间

确定所有U.S.供电单位的平均持续时间。添加电源中断的平均持续时间Powerlosses.。因为t.restiontime.具有值,省略了结果计算平均持续时间的值。

d = t.restiontime  -  t.outageTime;H =小时(D);omeanfcn = @(x)(平均值(x,'omitnan'));powerlosses.meanOutage = sclustapply(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

也可以看看

|||

相关例子

更多关于