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 :
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);
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
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
Partager