Bonjour,
J'ai créé des fonctions Matlab Embarqué dans simulink dans lesquelles je voudrais utiliser des fonctions que j'ai créé dans des M-file.
J'ai enregistré mes fonctions dans un dossier de mon répertoire de travail :
\MatlabFunctions\strToNum.m
Pour l'instant dans ma fonction embarquée matlab, j'ai essayé de la déclarée avec :
coder.extrinsic('strToNum');
ou
coder.extrinsic('MatlabFunctions\strToNum');
mais dans les 2 cas il me génère une erreur :
Ma fonction matlab embarqué est la suivante :Undefined function or variable 'coder'.
Function 'getAllContentsNum' (#18.172.177), line 6, column 1:
"coder"
et la fonction que j'appel :
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 function contentNum = getAllContentsNum(list, sessionIds) % Retourne toutes les valeurs associées aux ids passés dans le tableau sessionIds au format (1, 10, 'double') % coder.extrinsic('MatlabFunctions\getContent'); coder.extrinsic('MatlabFunctions\strToNum'); contentStr = zeros(1, 256, 'uint8'); contentNum = zeros(1, 10, 'double'); for i=1:10 contentStr = getContent(list, sessionIds(i)); contentNum(i) = strToNum(contentStr); end
Est ce que quelqu'un peu m'aider sachant que le but final est de générer une dll avec mon code simulink et que ma version matlab est R2007b.
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
17
18
19
20
21
22
23
24
25
26
27
28
29 function num = strToNum(str) %Retourne la valeur numérique d'une String au format uint8 % val = zeros(1,10,'double'); pow = zeros(1,10,'double'); num = double(0); total = max(size(char(str))); i = 1; j= total; while i<=total && j>1 val(i) = getNum(str(i)); i = i+1; j = j-1; end for i=1:total num = num + (val(i) * pow(i)); end % Retourne la valeur numérique(double) d'un chiffre ASCII(uint8) compris entre 0 et 9 function num = getNum(chr) ascii = [48:1:57]; num = double(0); for i=1:10 if ascii(i) == uint8(chr) num = double(i); end end
Merci d'avance
Partager