1 | function [CorFamRes,CorDevListRes,BpmFamRes,BpmDevListRes,BpmEyeRes,ConsRes]=bmp4Cor(QuadFamilyList,QuadDevList,Plane) |
---|
2 | %clear |
---|
3 | %load('HrzCOR.mat'); |
---|
4 | %Donnᅵes stockᅵe dans HrzCOR.mat ᅵ partir du prog eff2.m |
---|
5 | %save('HrzCOR.mat','listHCOR','listBPMx','repInit','rep','effic','famQp','famQtot','listfamQtot','famBp','indBp','posBp','amplEff','HCORtrouv','famQtrouv','indQtrouv','nbH','indnbH','nbHCOR'); |
---|
6 | |
---|
7 | if Plane==1 |
---|
8 | BpmFam='BPMx'; |
---|
9 | CorFam='HCOR'; |
---|
10 | NamePlane='HPlane'; |
---|
11 | %CorBpmResp=efficacy.HPlane; %effic(Cor,Bpm) |
---|
12 | BpmMax=37; |
---|
13 | elseif Plane==2 |
---|
14 | BpmFam='BPMz'; |
---|
15 | CorFam='VCOR'; |
---|
16 | NamePlane='VPlane'; |
---|
17 | %CorBpmResp=efficacy.VPlane; |
---|
18 | BpmMax=4.5; |
---|
19 | else |
---|
20 | error('input must "1" for horizontal plane or "2" for vertical plane'); |
---|
21 | |
---|
22 | end |
---|
23 | |
---|
24 | % OPTION ALL Qp |
---|
25 | %for i=1:160 %length(famQtot) % <=> famQtot = vecteur de longueur 160 contenant toutes les familles Qp: 'Q1','Q1'... |
---|
26 | disp('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$') |
---|
27 | %tailleQp=size(QuadFamilyList); |
---|
28 | |
---|
29 | for i=1:length(QuadFamilyList) |
---|
30 | |
---|
31 | |
---|
32 | %listfamQtot(i,:); |
---|
33 | %indBp(i,:); |
---|
34 | if Plane==1 |
---|
35 | [famCb1,indCb1,posHb1]=proche2(CorFam,char(QuadFamilyList(i)),QuadDevList(i,:),-1); % Hb1= first HCOR before Qp [cell elt] |
---|
36 | [famCa1,indCa1,posHa1]=proche2(CorFam,char(QuadFamilyList(i)),QuadDevList(i,:),1); % Ha1= first HCOR after Qp [cell elt] |
---|
37 | [famCb2,indCb2,posHb2]=proche2(CorFam,CorFam,indCb1,-1); % Hb2= second HCOR before Qp [cell elt] |
---|
38 | [famCa2,indCa2,posHa2]=proche2(CorFam,CorFam,indCa1,1); % Ha2= second HCOR after Qp [cell elt] |
---|
39 | |
---|
40 | % Hb2 Hb1 Qp Ha1 Ha2 |
---|
41 | |
---|
42 | % [famBa1,indBa1,posBb1]=proche2(BpmFam,CorFam,indCb1,1) % Bb1 = first BPM after HCOR "Hb1" |
---|
43 | % [famBa2,indBa2,posBb2]=proche2(BpmFam,BpmFam,indBa1,1) % Bb2 = second BPM after HCOR "Hb1" |
---|
44 | % |
---|
45 | % [famBb1,indBb1,posBa1]=proche2(BpmFam,CorFam,indCa1,-1) % Ba1 = first BPM before HCOR "Ha1" |
---|
46 | % [famBb2,indBb2,posBa2]=proche2(BpmFam,CorFam,indBb1,-1) |
---|
47 | |
---|
48 | |
---|
49 | %[famBqb1,indBqb1,posBqb1]=proche2('BPMx',char(famQtot(i)),listfamQtot(i,:),-1); % Bqb1 = first BPM before Qp [cell elt] |
---|
50 | %[famBqa1,indBqa1,posBqa1]=proche2('BPMx',char(famQtot(i)),listfamQtot(i,:),1); % Bqa1 = first BPM after Qp [cell elt] |
---|
51 | |
---|
52 | %Il y a soit 2 BPM soit 3 BPM entre deux HCOR |
---|
53 | |
---|
54 | %if (sum(indBb1-indBa1)==0) | (sum(indBb1-indBa2)==0) |
---|
55 | % vecBp=[indBa1;indBa2]; |
---|
56 | % cons=[1;1]; |
---|
57 | %else |
---|
58 | % vecBp=[indBa1;indBa2;indBb1]; |
---|
59 | % cons=[1;1;1] |
---|
60 | %end |
---|
61 | elseif Plane==2 |
---|
62 | [famB0,indB0,posB0]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),0); |
---|
63 | [famBb1,indBb1,posb1]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),-1); |
---|
64 | [famBa1,indBa1,posa1]=proche2(BpmFam,QuadFamilyList(i),QuadDevList(i,:),1 ); |
---|
65 | testVecBp=[indBb1;indBa1]-[indB0;indB0]; |
---|
66 | testVec1(1)=sum(testVecBp(1,:)); |
---|
67 | testVec1(2)=sum(testVecBp(2,:)); |
---|
68 | |
---|
69 | if testVec1(1)==0 |
---|
70 | %les cor avant Qp seront recherchés à partir de indB0 |
---|
71 | %les cor aprÚs Qp seront recherché à partir de Qp |
---|
72 | [famCb1,indCb1,posCb1]=proche2(CorFam,BpmFam,indB0,-1); |
---|
73 | [famCb2,indCb2,posCb2]=proche2(CorFam,famCb1,indCb1,-1) |
---|
74 | |
---|
75 | [famCa1,indCa1,posCa1]=proche2(CorFam,QuadFamilyList(i),QuadDevList(i,:),1); |
---|
76 | [famCa2,indCa2,posCa2]=proche2(CorFam,famCa1,indCa1,1); |
---|
77 | |
---|
78 | %quels sont les bpm compris entre Cb1 et Ca1 |
---|
79 | %comparer tous les Bpm aprÚs le premier correcteur avant (Cb1) avec le premier avant |
---|
80 | |
---|
81 | |
---|
82 | |
---|
83 | |
---|
84 | |
---|
85 | elseif testVec1(2)==0 |
---|
86 | %les cor avant Qp seront recherché à partir de Qp |
---|
87 | %les cor aprÚs Qp seront recherché à partir de indB0 |
---|
88 | |
---|
89 | [famCb1,indCb1,posb1]=proche2(CorFam,QuadFamilyList(i),QuadDevList(i,:),-1); |
---|
90 | [famCb2,indCb2,posb2]=proche2(CorFam,famCb1,indCb1,-1); |
---|
91 | |
---|
92 | [famCa1,indCa1,posa1]=proche2(CorFam,BpmFam,indB0,1); |
---|
93 | [famCa2,indCa2,posa2]=proche2(CorFam,famCa1,indCa1,1); |
---|
94 | |
---|
95 | |
---|
96 | |
---|
97 | |
---|
98 | end |
---|
99 | |
---|
100 | end |
---|
101 | [famBt0,indBt0,post0]=proche2(BpmFam,famCa1,indCa1,-1); % first BPM before Ca1 |
---|
102 | |
---|
103 | var=0; |
---|
104 | condi=10; |
---|
105 | famBt1=famCb1; |
---|
106 | indBt1=indCb1; |
---|
107 | while abs(condi)>0 |
---|
108 | var=var+1; |
---|
109 | [famBt1,indBt1,posBt1]=proche2(BpmFam,famBt1,indBt1,1); |
---|
110 | famBtSol(var)=cellstr(famBt1); |
---|
111 | indBtSol(var,:)=indBt1; |
---|
112 | posBtSol(var)=posBt1; |
---|
113 | condi=indBtSol(var,:)-indBt0; |
---|
114 | condi=sum(condi); |
---|
115 | %disp(condi); |
---|
116 | %disp(var); |
---|
117 | end |
---|
118 | for j=1:var |
---|
119 | vecBp(j,:)=indBtSol(j,:); |
---|
120 | cons(j)=1; |
---|
121 | end |
---|
122 | |
---|
123 | [famYQp,indYQp,posYQp]=proche2(BpmFam,char(QuadFamilyList(i)),QuadDevList(i,:),0,vecBp); |
---|
124 | |
---|
125 | CorFamRes=CorFam; |
---|
126 | CorDevListRes=[indCb2; indCb1; indCa1; indCa2]; |
---|
127 | BpmFamRes=BpmFam; |
---|
128 | BpmDevListRes=vecBp; |
---|
129 | BpmEyeRes=indYQp; |
---|
130 | ConsRes=cons; |
---|
131 | |
---|
132 | end |
---|
133 | |
---|
134 | %save('bmp4.mat','indC','valH','famQtot','listfamQtot') |
---|