矩阵中块连续矩阵的向量化(M = [N(1); N(2); ...; N(n)])

时间:2015-07-31 09:50:34

标签: matlab for-loop vectorization

我想要对以下代码进行矢量化,但我不知道这是否可行(我在下面添加了代码和示例集)。我有一个[n,48]矩阵,其解决方案名为“pop'”。一个解决方案' x'是包含矩阵N的索引的1x48矩阵.N中的每一行定义产品的批次选择,其中N的列3:11包含有关批次生产的产品数量的信息(第3列=产品1,列4 =产品2等),如下所示:

N = [BatchID, na, Product 1, Product 2,..., Product 9,na,...;
           1, na,       100,         0,...,       220,na,...;
           2, na,         0,       340,...,         0,na,...;
           ...                                           
       30000, na,        80,         0,...,       120,na,...];

因此,命令N(x(:),3:11)'创建一个9x48矩阵,其中每列(n)对应一个批次选择,以及具有该选择产生的产品数量的行,如下所示:

 Tt= [Batch index: 200,215,400,...,315;
      Product 1  :  0 , 50, 80,..., 40;
      Product 2  : 100,  0, 20,...,  0;
      ...
      Product 9  :  80, 20,  0,..., 20];

每6列对应一周的产量,我需要知道每周的总产量,其中过量的产品被添加到下一周(f1和f2定义9x1向量,其中包含有关每个产品的信息一周百分比)。通过组合所有周(Nf = [f1,f2,f3,f4,f5,f6,f7,f8];),创建一个矩阵,其中包含每周产品的生产,如下所示:

Nf = [week nr. :   1,   2, ...,   8;
      Product 1:   1, 0.5, ..., 0.7;
      Product 2: 0.9,   1, ...,   1;
      ...
      Product 9: 0.8, 0.7, ..., 0.9];

此矩阵用于以下列方式计算适合度:

V = exp(-Nf*5).*1000;    % Penalty for % product order not completed

f = sum(sum(V)); %Nf转换为适合度值

使用这些步骤,对于pop中的每个x,计算适应度f,但是for循环用于循环pop,但这似乎是不必要的。

亲切的问候,

聚苯乙烯。这个附加文件的解决方案将非常糟糕,通常是字符串' x'是1x240,包含其他批次将介绍' pop.mat'

中缺少的产品类型

链接示例: file

0 个答案:

没有答案