bonjour,
je devellope actuellement un modèle simulink ou je fais appel à un bloc matlab embedded, qui contient un script matlab.
Je declare une variable en persistent (var) et je l'initialise dans une boucle :
le resultat devrais être un entier (int ou double) : lcm étant la fonction qui donne le plus petite diviseur diviseur commun.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if isempty(var) var=lcm(x,y)/x; end;
ensuite j'utilise cette variable dans un test :
Or cela ne compile pas car le type de var est un mxArray, or il ne veux pas de ce type pour le test que j'effectue après ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if(test == var) ... end;![]()
voila le texte de l'erreur :
je me retrouve dans une impasse totale ... j'ai essayé de forcer le cast par la fonction cast(var,'int8') ou directement de caster dans le test int8(var) mais rien ne marche. j'ai aussi essayer de convertir le type mxArray en int ou double mais je n'y arrive pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 "Expected either a logical, char, int, fi, single, or double. Found an mxArray. mxArrays are returned from calls to the MATLAB interpreter and are not supported inside expressions. They may be used on the right-hand side of assignments and as arguments to MATLAB calls. Function 'X' (#134.1059.1068), line 47, column 20: "var""![]()
si quelqu'un peut m'aider, je lui en serais très reconnaissant![]()
Merci d'avance
Partager