Je débute en matlab et j'ai quelques difficultés. Un module en C a été réalisé et je dois recoder ce module en c en matlab. Je vous donne donc le module en c suivi de ce que j'ai écrit en matlab:
le module en c :
Code C : 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
17
18
19
20
21
22
23
24
25
26
void mc_dip_abcformula_correction(const as_abc_t* abc_in,     /* [IP]*/
                                  const int32_t* iterations,  /* [IP] nombre d'itération du module */
                                  as_abc_result_t* abc_out)
    int i;
    for (i = 0; i < iterations; i++) {
    float a = abc_in->a;
    float b = abc_in->b;
    float c = abc_in->c;
 
        if (a == 0) {
            abc_out->result1 = (b == 0 ? nanf("") : -c/b);
            abc_out->result2 = (b == 0 ? nanf("") : -c/b);
        }
        else {
            float delta = powf(b,2) - 4.0f * a * c;
            if (delta >= 0) {
             abc_out->result1 = ((-b+sqrtf(delta))/2*a);
             abc_out->result2 = ((-b-sqrtf(delta))/2*a);
            }
            else {
             abc_out->result1 = nanf("");
             abc_out->result2 = nanf("");
            }
       }
    }
}
A partir de ce module de référence. Je dois maintenant faire la meme chose mais en matlab et voila ce que j'ai fait:

Code Matlab : 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
% Entrees/Sorties : 
% IP  abc_in [abc] : 
% IP  iterations [int32] : nombre d'itération du module
% OP  abc_out [abc_result] : 
function [abc_out] = polynome(abc_in, iterations)
 
for (i=0:iterations)
    a=abc_in();
    b=abc_in();
    c=abc_in();
 
 
if (a==0)
    if (b==0)
        result1 = abc_out(NaN);
        result2 = abc_out(NaN);
    else
        result1 = abc_out(-c/b);
        result2 = abc_out(-c/b);
    end
 
if (a~=0)
    delta = b^2 - 4*a*c;
    if (delta>=0)
        result1 = abc_out((-b+sqrt(delta))/2*a);
        result2 = abc_out((-b-sqrt(delta))/2*a);
        else
            result1 = abc_out(NaN);
            result2 = abc_out(NaN);
 
end
 
    end
       end
 
 
end
Lorsque je réalise mon test unitaire le problème que j'obtiens est le suivant :
[MATLAB:UndefinedFunction] Function 'eq' is not defined for values of class 'struct'.
Comment dois je modifier mon code. Je débute en matlab comme je l'ai dit. sil vous plait aidez moi. merci beaucoup pour l'aide que vous pourrez m'apporter.