Bonjour,
J'ai deux couples de vecteurs (A_time, A, B_time, B) réprésentant chacun 1 courbe.
Les matrices d'un couple sont de tailles homogènes (matrice N, 1 pour A et A_time; matrice M, 1 pour B et B_time).
Je cherche à les soustraires et à sortir une status (egal/not egal).
Pour ça je dois interpoler pour qu'elles soient de même dimensions puis faire un B-A.
Jusque là ça va.
Seulement, physiquement, ces courbes sont de type plot2d2 (bloqueur) et non plot (ok, je m'exprime mal).
Donc les interpln, interp1 et autre ne donnent rien. J'aimerais utiliser l'interp avec l'argument "C0" qui semble répondre à mon besoin (et qui m'éviterait les faux-positifs lors de mon dépouillement). Mais je n'arrive pas à trouver un exemple applicable (sachant que je suis loin des maths depuis quelques années).
Je pense que mon d (qui doit être le s'(x) selon l'aide) me cause quelques erreurs.
Quelqu'un a-t'il une idée ?
Ici, j'aurais pu passer A_time, A, puis le pas d'interpolation, puis la tolérance pour la sortie "egal/not egal'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 exec('reg_test1.sci'); [C1_time, C1] = reg_test1('A', 'B', 0.5, 0.2); exec('reg_test2.sci'); [C2_time, C2] = reg_test2('A', 'B', 0.5, 0.2); exec('reg_test3.sci'); [C3_time, C3] = reg_test3('A', 'B', 0.5, 0.2); close subplot(4, 1, 1); plot(A_time, A, B_time, B); subplot(4, 1, 2); plot2d2(A_time, A); plot2d2(B_time, B); subplot(4, 1, 3); plot(C1_time, C1, C2_time, C2); subplot(4, 1, 4); plot(C3_time, C3);Sachant que l'exemple bateau sur lequel je fais mes tests est le suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // Interval ou les courbes sont comparables x_min = max(varA_time(1), varB_time(1)); x_max = min(varA_time(size(varA_time, 1)), varB_time(size(varB_time, 1))); x = [x_min:pas:x_max]'; disp(x_min) disp(x_max) // Linéarisation ACorr, BCorr //ACorr = interpln([varA_time'; varA'], x'); //BCorr = interpln([varB_time'; varB'], x'); dA = splin(varA_time', varA', "fast"); dB = splin(varB_time', varB', "fast"); ACorr = interp(x', varA_time', varA', dA, "C0"); BCorr = interp(x', varB_time', varB', dB, "C0"); plot(x', ACorr)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 A = [0; 4; 10; 10; 10]' B = [0; 0; 10; 10; 10]' A_time = [1:5]' B_time = [1:5]'
Mon objectif est de ressortir du 0 logique sur l'interval [0;1[ du 1 logique (regression) sur l'int [1;2[ puis du 0 logique sur le reste.
Partager