Bonjour,
j'aimerais pouvoir tracer sous matlab avec la fonction "plot" par exemple, un fichier .mat obtenu avec simulink. Mais je ne sais pas comment faire. Quelqu'un aurait-il une idée?
Merci d'avance
Bonjour,
j'aimerais pouvoir tracer sous matlab avec la fonction "plot" par exemple, un fichier .mat obtenu avec simulink. Mais je ne sais pas comment faire. Quelqu'un aurait-il une idée?
Merci d'avance
Qu'est-ce que tu ne sais pas faire exactement ?
Je ne vois pas bien où est le problème.
Tu récupères tes données avec LOAD puis tu les traces avec PLOT![]()
ca ne marche pas justement.
je tape:
Et j'obtiens l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 mat=load('sin') plot(sin,'r'); xlabel('x'); ylabel('y'); title('test'); grid on;
??? error using ==> plot
Conversion to double from struct is not possible.
Une idée?![]()
Tiré de la documentation de LOAD :
Donc =>S = load(...) [...] If the file you are loading from is a MAT-file, then output S is a structure containing fields that match the variables retrieved. If the file contains ASCII data, then S is a double-precision array.: Qu'est ce qu'une structure ?
Relis bien l'aide de LOAD, ça explique tout.
Quand tu fais :Aucune des variables du fichier sin.mat n'est chargée dans le workspace courant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mat=load('sin')
Pour retrouver les valeurs de ces variables tu dois faire :
mat.(le nom de la variable)
Donc ta variable sin est inconnue au moment où tu l'appelles.
Sauf que le message ne dis pas tout à fait ça car tu utilises comme nom de variable SIN ce qui est très dangereux car c'est le nom de la fonction sinus sous MATLAB.
Je te conseillerais donc vivement de :
1. Ne pas utiliser sin comme nom de variable
2. Ne pas utiliser sin comme nom de fichier quelque soit l'extension
J'ai marqué "sin" dans mon message pour abréger le nom qui est plus long. Le problème ne vient pas du nom de mon fichier.
Comment je peux tracer un graphe si le code que j'ai entré précédement me donne une structure?
Peut-etre que je me suis mal exprimée avant..je vais réexpliquer le problème.
Mon fichier .mat a été crée par Simulink lors d'une simulation, et j'aimerais l'utiliser maintenant sous matlab. Le but final est d'afficher les signaux de plusieurs fichiers.mat sur un même graphe pour les comparer...
Ce que je n'arrive pas à faire, c'est lire correctement un fichier .mat avec matlab. Soit il me donne une erreur, soit un signal incohérent..
As-tu lu l'aide de LOAD, et nos messages ?
Pour savoir ce qu'il y a dans ton fichier .mat plusieurs possibilités :
Te donne les noms de toutes les variables contenus dans ton fichier ainsi que leur type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part donnees=whos('monfichier')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 clear all;%nettoyage du workspace load('monfichier'); whos % pareil que précédemment sauf que là tu peux accéder aux données et donc à leur valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 S=load('monfichier') f=fieldnames(S) %les champs de la sturcture sont le nom des variables for k=1:length(f) S.(f{k}) %donne chaque valeur de chaque variable end
Partager