2012-07-30 57 views
0

嗨,我有以下4D矩阵如何从4D MATLAB矩阵删除元素

for idx_number_panels = 1:length(number_panels) % range of PV panel units examined 

for number_turbines = 0:2 % range of wind turbine units examined 

    for number_batteries = 1:10 % range of battery units examined 


     for h=2:25 %# hours 

      for d = 1:number_of_days %# which day 

       n = h + 24*(d-1); 
       % hourly_deficit_1(...,..., h, d)= Demand(n)-(PV_supply(n)... % 


       hourly_total_RES(idx_number_panels,number_turbines + 1,number_batteries, h,d) 

我想从上面的四维矩阵中的每个24行中删除整个行,因此调整矩阵。这是可能的,以及它如何可以做到,因为文档似乎并没有帮助

感谢

回答

0
  1. 让你想保持
  2. 指数只是那些行的所有行索引的矢量hourly_total_RES并分配回hourly_total_RES。

    trashidx = 1:24:idx_number_panels;

    keepidx = setdiff(1:idx_number_panels,trashidx);

    hourly_total_RES = hourly_total_RES(keepidx,:,:,:);

而且我不知道为什么上面没有格式化为代码....

+0

所以你所提出的建议为每个维度之一“trashidx”向量? 1:24:idx_number_panels是否每24行申请一行?即第1,第25,第49等? – user643469 2012-07-30 23:51:55

+0

应该被删除= 1:24:h? – user643469 2012-07-30 23:54:58

+0

从上面的代码中,我认为您引用的4D矩阵是hourly_total_RES,行由idx_number_panels索引。但是这是你的代码,如果你说1:24:h那么就这样吧。另外,如果你在MATLAB控制台中这样做,你会看到: 1:24:100 ans = 1 25 49 73 97 – kitchenette 2012-07-31 04:18:46