Module matlab: probleme "unassigned output"
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:
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:
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.