for i=1:SH t1=s1(i);%记录到当前是那个工件 t2=s2(i);%记录当前工件是加工到第几次 mm(i)=mac_m(1,sum(H(1,1:t1-1))+t2);%提取该工序该次加工的机器选择,因为机器码的排列表示该工件第几次加工所选的机器,是一段表示一个工件 end
时间: 2024-03-04 21:50:47 浏览: 15
同样是MATLAB语言的代码,该代码使用了一个循环结构,循环次数为SH。在每次循环中,将s1(i)的值赋值给t1,将s2(i)的值赋值给t2。然后,从mac_m中提取该工序该次加工的机器选择,并将其赋值给mm(i)。其中,mac_m是一个矩阵,表示机器的信息;H是一个矩阵,表示工件的信息。这个代码片段的作用是提取每个工件在该工序中所选的机器。
相关问题
for i=1:SH t1=s1(i);%记录到当前是那个工件 t2=s2(i);%记录当前工件是加工到第几次 mm(i)=mac_m(1,sum(H(1,1:t1-1))+t2);
这段代码实现的是将工件加工顺序和加工次数转换为机器码。首先,对于第i个工序,根据s1(i)可以求出当前加工的是哪个工件,然后根据s2(i)可以求出该工件当前加工的是第几次。接着,根据sum(H(1,1:t1-1))可以求出该工件前面所有工序的总数,再加上t2就是当前工件当前加工次数对应的机器码在mac_m中的位置。最后将该位置的值赋给mm(i),就得到了该工序对应的机器码。
P1=[];P2=[];IP1=[];IP2=[]; for i=1:SH t1=s1(i);%记录到当前是那个工件 t2=s2(i);%记录当前工件是加工到第几次 if f_chrom(t1)==0 P1=[P1 p_chrom(i)]; IP1=[IP1,i]; else P2=[P2 p_chrom(i)]; IP2=[IP2,i]; end end
这段代码是一个 for 循环,用于将数据根据条件分别添加到 P1、P2、IP1 和 IP2 这四个变量中。
在循环中,从 1 到 SH 进行迭代,其中 SH 是一个表示循环次数的变量。
在每次迭代中,t1 变量被赋值为 s1(i),表示记录当前是哪个工件。
t2 变量被赋值为 s2(i),表示记录当前工件加工到第几次。
根据条件 `f_chrom(t1) == 0`,如果满足条件,将 p_chrom(i) 添加到 P1 数组中,并将 i 添加到 IP1 数组中。
如果条件不满足,将 p_chrom(i) 添加到 P2 数组中,并将 i 添加到 IP2 数组中。
最终,这个循环将根据条件将数据分别存储到 P1、P2、IP1 和 IP2 四个变量中。