Fenêtre
d'acquisition de données
[27 mai 2004] Marilou D. a écrit:
Bonjour, je suis étudiante et je
m'intéresse à matlab.
Je suis tombée sur votre site et je me permets de vous
écrire parce que me pose une question dont je ne
trouve pas la réponse: comment créer une fenêtre
utilisateur dans un programme matlab. Cette fenêtre
doit servir à ouvrir un fichier choisi par
l'utilisateur afin de le traiter par un programme
édité sous matlab... Est-ce que la fonction input
seule est suffisante? Dans l'attente d'une réponse de
votre part, veuillez accepter mes sentiments les meilleurs.
Il existe effectivement des instructions sous matlab pour créer
de petites fenêtres de dialogue avec l'utilisateur.
Il s'agit des commandes suivantes dont vous trouverez les
détails d'utilisation dans l'aide en ligne de matlab.
dialog : Create dialog box
errordlg : Create error dialog box
helpdlg : Display help dialog box
inputdlg : Create input dialog box
listdlg : Create list selection dialog box
msgboxCreate : message dialog box
pagedlgDisplay : page layout dialog box
printdlgDisplay : print dialog box
questdlgCreate : question dialog box
uigetdirDisplay : dialog box to retrieve name of directory
uigetfileDisplay : dialog box to retrieve name of file for reading
uiputfileDisplay : dialog box to retrieve name of file for writing
uisetcolorSet : ColorSpec using dialog box
uisetfontSet : font using dialog box
waitbarDisplay : wait bar warndlgCreate warning dialog box
Voici un exemple d'utilisation:
prompt = {'Souhaitez-vous visualiser le maillage?',...
'Souhaitez-vous visualiser le processus d''assemblage?',...
'Souhaitez-vous visualiser les isovaleurs de la solution?'...
'Souhaitez-vous visualiser les isovaleurs de la solution exacte?',...
'Souhaitez-vous visualiser les isovaleurs de l''erreur?'};
title = 'Visualisation';
lines = 1;
def = {'non','non','non','non','non'};
answer = inputdlg(prompt,title,lines,def);
for i=1:5
if isempty(answer{i}), optaf(i)=0;
else if (answer{i}(1)~='o'& answer{i}(1)~='y'), optaf(i)=0;
else optaf(i)=1; end;
end
end
Autre exemple:
prompt = {'Quel type de stockage pour la matrice (plein ou sparse)?'};
title = 'Stockage';
lines=1;
def = {'plein'};
answer = inputdlg(prompt,title,lines,def);
if answer{1}(1:1) == 's' | answer{1}(1:1) == 'S'
stsp = 1;
else
stsp = 0;
end;
Pour votre problème d'ouverture de fichier, je pense que vous
pouvez utiliser la commande
uigetfileDisplay
(c)
Stéphane Balac - Centre de Mathématiques - INSA de Lyon.