2010-02-04 9 views
2

J'ai une fonction sumsurface que j'utilise dans le code ci-dessous pour afficher certaines valeurs dans la fenêtre de commande:Comment afficher quelque chose d'une fonction sur une fenêtre d'affichage dans une interface graphique dans MATLAB?

if sumsurface(i) < .01 && sumsurface(i) > -.01 

    disp(sumsurface(i)); 

    disp(pH(i)); 

end 

Cependant, je veux au lieu d'afficher sumsurface(i) et pH(i) sur une fenêtre d'affichage dans une interface graphique. Comment puis-je faire ceci?

Répondre

5

Si vous êtes désireux de affichage les chiffres, par opposition à comploter eux, vous avez quelques options. Un très simple est d'utiliser la fonction MSGBOX pour ouvrir une boîte de dialogue et afficher une chaîne. Vous devez d'abord convertir votre nombre (s) en une représentation de chaîne en utilisant des fonctions comme INT2STR, NUM2STR, ou SPRINTF. Voici un exemple:

sumsurface = rand; %# Pick a random number 
pH = rand;   %# Pick another random number 
str = {['sumsurface = ' num2str(sumsurface)]; ... 
     ['pH = ' num2str(pH)]}; %# Creates a 2-by-1 cell array of strings 
msgbox(str); 

et voici la boîte de dialogue qui:

alt text

Vous pouvez également créer des zones de texte statiques vous utilisez la fonction UICONTROL. Ce serait un meilleur choix si vous souhaitez insérer les zones de texte dans une interface graphique existante. Voici un exemple de la façon dont vous pouvez initialiser les boîtes de chiffres et de texte pour l'interface graphique:

hFigure = figure('Position',[300 300 150 70],... 
       'MenuBar','none'); 
hText1 = uicontrol('Style','text','Parent',hFigure,... 
        'Position',[10 40 130 20],... 
        'BackgroundColor',[0.7 0.7 0.7]); 
hText2 = uicontrol('Style','text','Parent',hFigure,... 
        'Position',[10 10 130 20],... 
        'BackgroundColor',[0.7 0.7 0.7]); 

Maintenant, vous pouvez utiliser les poignées pour les zones de texte pour mettre à jour la propriété String à ce que vous voulez afficher:

set(hText1,'String',['sumsurface = ' num2str(rand)]); 
set(hText2,'String',['pH = ' num2str(rand)]); 

et voici ce que la figure ressemble à:

alt text

Questions connexes