Utilisation des mutex en matlab

Fermé
bilal_sayed1 Messages postés 1 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 25 avril 2013 - 25 avril 2013 à 08:06
 tchouf - 3 mai 2013 à 17:23
Bonjour,
j'ai un projet sur matlab dans lequel 6 differentes instances de Matlab doivent enregistrer des variables dans un même fichier (database.mat) et d'un temp a un autre, ces instances de Matlab doivent lire ce fichier. Le problème est que lorsque une instance doit lire le fichier (database.mat) et en meme temp une autre instance est en train de sauvegarder le même fichier. L'erreur que je rencontre est :


Je sais qu'en language C, on peut utiliser des mutex pour ne pas tomber dans cette erreur et je sais encore qu'on peut utiliser des fichiers écrits en language C dans Matlab mais je ne sais pas comment je doit ecrire le code pur cela.

SVP j'ai besoin d'un reponse rapide de vous.



1 réponse

Bonsoir,

si tu sais comment faire en C, tu peux coder ta fonction dans ce langage.
Les fichiers mex permettent d'exécuter du code C sous matlab. Il faut juste faire une passerelle entre matlab et ton code C "mafonction.c", grâce à la fonction "passerelle.c" :

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
Déclaration des entrées et sorties;
Récupération des entrées;
mafonction;
Fabrication des sorties;
}

Tu compile "passerelle.c" grâce au mot-clé "mex" dans matlab.
ça te crée un fichier "passerelle.mexXXX", que tu peux appeler directement depuis matlab.

Voilà, j'espère que c'est ce que tu voulais.
Si la question portait plus sur les mutex, là je ne peux pas t'aider... :s
Tchouf
0