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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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