Bonjour,
je travaille sur une interface GUI. Je propose a l'utilisateur de loader une variable matlab. Pour cela il choisit dans les repertoires le fichier Matlab, et donne le nom de la variable en question.
Ce que j'aimerai faire c'est qu'a chaque fois qu'il choisit un fichier matlab, s'affiche dans un certain champ le résultat que Matlab aurait donné lors d'un whos('-file', 'monfichier.mat').
J'ai reussit a faire afficher le resultat si je fais un simple 'who' (et donc je n'ai que le nom des variables) mais j'aimerai avoir aussi les données bytes, class et size.
donc j'ai fait 4 champs texte, pour y faire apparaitre les 4 champs du whos.
Ca ne marche que dans le cas ou il n'y a qu'une seule variable dans le fichier .mat, et dans ce cas pour le champ size, chaque dimension est sur une nouvelle ligne.
Comment puis-je faire ca mieux? (et surtout plus simplement, juste afficher le whos dans une grand champ text ou edit).
voici le bout de code important, celui ou l'utilisateur appuie pour selectionner son fichier:
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
23 % --- Executes on button press in browsefile. function browsefile_Callback(hObject, eventdata, handles) % hObject handle to browsefile (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Browse matlab file start_path = get(handles.filename,'String'); [filename,pathname] = uigetfile({'*.mat';'*.*'},'File Selector',start_path); editmat = fullfile(pathname,filename); set(handles.filename, 'String', editmat); list_var = whos('-file', editmat) set(handles.editname, 'String', list_var.name); set(handles.textsize, 'String', list_var.size); set(handles.textbytes, 'String', list_var.bytes); set(handles.textclass, 'String', list_var.class); guidata(hObject,handles);
Partager