bonjour.
Est-il possible d'utiliser des variables définies dans un '.m' dans un autre '.m'
Merci d'avance pour votre aide.
bonjour.
Est-il possible d'utiliser des variables définies dans un '.m' dans un autre '.m'
Merci d'avance pour votre aide.
La méthode la plus simple reste de les passer en variables d'entrée (ou de sortie) de ton .m, ce qui implique que tes .m soient des fonctions.
fichier main.m:
fichier truc.m:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function main() <div style="margin-left:40px">a=... b=... c = truc(a,b);</div>end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function c = truc(a,b) <div style="margin-left:40px">c= (a+b)/2;</div>end
Bon je vois que tu voulais quelque chose de plus élaboré que les fonction d'entrée et de sortie.
voici un exemple :
Dans un autre .m :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ... (définition d'un GUI) %exemple d'un des handles si tu as besoin d'utiliser un GUI: hspan = uicontrol('Style','Slider',... 'Position',[700,350,150,20],... 'Value',15,... 'Min',5,... 'Max',30,... 'SliderStep',[1/25 1/5],... 'visible','off',... 'Callback','span_callback',... 'Tag','span'); %c'est cette ligne qui est importante, tu appeleras ton handle via le tag 'span' data=guihandles(gcf); %enregistrement des données du gui dans la structure data data.sensor=[]; %ajout d'autres données à la structure data.filtered_sensor=[]; data.time=[]; data.filtered_time=[]; data.max_strain=[]; data.max_temp=[];
J'espère que ça te conviendra mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ... data=guidata(gcbf); %récupération des données du GUI span=get(data.span,'Value'); %récupération des données du handle span set(data.span_value,'String',num2str(span)); %entrée de cette valeur dans le handle span_value [data.sensor data.time]=data_recup(path,filename); %enregistrement de données. ... guidata(gcbf,data); %renvoie des données de data modifiées dans le GUI.
Ok.
J'essai un peu de comprendre ce que tu m'as écrit.
à quoi serve les:
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 data.filtered_sensor=[]; data.time=[]; data.filtered_time=[]; data.max_strain=[]; data.max_temp=[];
A la base, "data=guihandles(gcf);" a récupéré les données des différents handles de mon GUI et les a stockées dans la variable data. Je vais exporter cette structure dans mes différents programmes. Cependant, je voudrais en profiter pour y implémenter d'autres données, qui n'ont rien à voir avec le GUI mais que j'utiliserai aussi dans d'autres .m. Du coup je les ajoute à la structure data par les lignes suivantes
Comme lors de l'initialisation, je n'ai aucune idée de ce que valent ces valeurs, je crée simplement une table vide. Le seul but est de les implémenter dans la structure data dès le début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 data.filtered_sensor=[]; data.time=[]; data.filtered_time=[]; data.max_strain=[]; data.max_temp=[];
Le code suivant ne fonctionne pas dans le .m différents de mon GUI:
et j'ai le message d'erreur suivant lorsque je run le M-File de mon GUI et que je run ensuite le code au dessus dans un autre .m:
Code : Sélectionner tout - Visualiser dans une fenêtre à part data=guidata(gcbf); %récupération des données du GUI
Je ne comprends pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ??? Error using ==> guidata at 89 H must be the handle to a figure or figure descendent. Error in ==> testcode3 at 1 data=guidata(gcbf)
Merci d'avance
Partager