Traitement de chaînes de caractères avec des MATLAB Embeded Function
Bonjour,
Je dois traiter des chaines de caractère qui m'arrivent en entrée dans simulink afin de récupérer certaines infos. Les chaînes qui m'arrivent sont de la forme :
Code:
maChaine = uint8('1#123#1;2#456#3;3#789#1;')
Afin de récupérer chaque morceau séparé par un point virgule, j'ai utilisé une fonction Matlab embarquée qui utilise la fonction findstr(';', maChaine);
Code:
1 2 3 4 5 6
| function sousChaine = fcn(maChaine)
% This block supports the Embedded MATLAB subset.
% See the help menu for details.
tmp = findstr(';', maChaine);
sousChaine = maChaine(1:tmp(1)); |
Cependant lors de l'exécution j'obtiens plusieurs erreurs (qui n'apparaissent pas lorsque j'utilise ce code avec matlab) :
Embedded MATLAB Interface Error: Error using ==> findstr
Input strings must have one row.
Block Embedded MATLAB Function (#510)
While executing: none.
lorsque je ne fait que findstr
ou
Subscripting into an mxArray is not supported.
Function 'Embedded MATLAB Function' (#509.198.204), line 7, column 25:
"tmp(1)"
lorsque j'essai de découper ma chaîne avec
Code:
sousChaine = maChaine(1:tmp(1));
Sauriez vous d'où vient ce problème, si peut le résoudre et sinon quelles autres solutions existe t'il pour traiter des chaines de caractère avec simulink
Merci de votre aide