Utilisation de M-file dans des MATLAB Embedded Functions
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 :
Citation:
Undefined function or variable 'coder'.
Function 'getAllContentsNum' (#18.172.177), line 6, column 1:
"coder"
Ma fonction matlab embarqué est la suivante :
Code:
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 |
et la fonction que j'appel :
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
| 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 |
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.
Merci d'avance