[MATLAB] Légende des axes

Résolu/Fermé
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 - 7 juin 2005 à 21:33
Msayle7 Messages postés 1 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 16 avril 2012 - 16 avril 2012 à 10:04
Bonjour,
lorsque qu'on affiche un graphique, la légende de l'axe vertical (ylabel) s'affiche verticalement, donc il faut pencher la tête pour la lire.
Y a-t-il un moyen de modifier l'orientation du texte ?
Et pour mettre des lettres en indice / exposant, c'est possible ?

Merci de votre aide

11 réponses

Salut,

si tu veux mettre un caractere en indice, utilise le underscore et pour mettre en exposant, utilise le ^.

exemple : x_7 z^9

si tu veux mettre plusieurs caractère en indice, utilise les { }

exemple

x_{78} -> mettra 78 en indice
z^{99} -> mettra 99 en exposant
x^{78}_{99} -> mettre 78 en exposant et 99 en indice

ensuite tu peux jouer avec les underscore et els ^

exemple : x^{78_9}_{87^{45}} -> même logique

Si tu veux mettre des lettres grecques, utilise le \

exemple : \alpha \beta \xi

donc tu obtiens qqch du genre :

\beta^{78}_{99} \xi_{7^9}

voici un test matlab ;

x=-pi:0.01:pi;
plot(x,cos(x),'r')
title('x_7 \theta_8 \xi_{99}^{45^7}')

connais-tu latex ? C'est exactement la même syntaxe.
20
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 51
8 juin 2005 à 13:35
je te remercie pour ces explications, ca marche nickel !
Par contre, j'ai toujours pas trouvé pour faire tourner les légendes des axes.

0
pom > jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007
8 juin 2005 à 14:36
Salut, concernantv les axes, je ne sais pas...
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
16 juin 2005 à 10:42
salut pom.
j'ai un soucis avec matlab. je dois faire communiquer un analyseur de spectre avec matlab. ca, ca marche, le soucis c'est que je dois recuperer plusieurs valeurs a diffrentes frequences. les commandes, je les connais. c'est pour afficher que je ne connais pas. il ne veut pas m'afficher une ligne en desous d'une autre ligne.
ce que je voudrais c'est d'avoir un tableau a trois colonnes, et pour les imprimer apres.
merci a toi
laurent
0
pom > laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
16 juin 2005 à 13:45
Salut Laurenttls,

Je vais sûrement te répndre des trucs trop simples :

1e idée : tu fais une matrice à trois colonnes,
2e idée : tu fais un fprintf : regarde la doc pour son utilisation. Si tu n'y arrives pas, renvoie un post

3e idée : tu fais un diary

exemple :

tu te crées un fichier : main.m (par exemple).

clear all

a=1

diary toto.txt

b=2
c=3
d=4;
e=5

diary off

tu lances ce fichier main.m et tu verras qu'un fichier toto.txt a été crée, dans lequel il est écrit :

b=2
c=3
e=5

d=4 n'est pas écrit car du fait de point virgule, il n'est pas affiché dan la feuille de calculs.

donc ej te propose de faire une matrice à trois colonnes puis un diary

j'espère que ca t'aide.

Cordialement
0
laurent > pom
16 juin 2005 à 15:05
merci deja d'avoir repondu si rapidement.
je vais essayer de faire. je te tiens au courant. ja' une autre question toute aussi bete, mais je ne sais pas comment faire.
par exemple, j'ai deja un edit text, je lance le programme, je rentre une valeur et j'arrive a la recuperer. cependant je ne voudrais que certaines valeurs deja defnis. j'utilise donc un popupmenu, je rentre les valeurs. je lance le programme, je choisis la valeur mais j'arrive pas a recuperer la valeur souhaitee.
sais tu pourquoi et comment je peux m'en sortir.
merci
laurent
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
17 juin 2005 à 17:11
merci a toi encore une fois. j'ai commence a taper un peu pour voir comment ca s'affiche une matrice.
j'ai encore des problemes.
voila mon code:

a=get(handles.edit14,'String')
b='.txt'
d=strcat(a,b)
diary (d)
fprintf('f1=%5.3f','\t','f2=%5.3f','\t','\n',f1,f2)
disp('NUMBER FREQUENCY VALUE')
diary off

les 4ere lignes sont pour concatener un mot et .txt pour demander le nom de mon fichier et le cree.
mon fprintf, j'ai un soucis a partir de la. la frequence f1 et f2 ne sont pas les bonnes, et ca s'affichent plusisuer fois sur la meme ligne. ensuite number, frequency et value s'affiche a la suite....
je reflechis ce WE sur la matrice "A". je reviens lundi. je te tiens au courant.
merci encore
Laurent
1
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
16 juin 2005 à 16:04
deja, l'enregistrement dans un fichier, ca marche. c'est exactement ce que je voulais. par contre, il y a un moyen de choisir de l'emplacement et du nom du fichier dans lequel tu enregistres tes valeurs?
pour le probleme, j'utilise GUI de matlab. et c'est un peu comme Visual Basic. popupmenu et edittext, ce sont des Unites, des "objet " en gros. un popupmenu, c'est un menu deroulant. alors qu'un edittext, c'est une case ou tu peux entrer ta valeur toi meme.
voila. je ne sais si j'ai ete clair.
Laurent
0
il y a un moyen de choisir de l'emplacement et du nom du fichier dans lequel tu enregistres tes valeurs?

Oui :
emplacement : si tu as utilise diary, il enregistre exactement, et a la meme place, les sorties de ton prgm. Tu ne choisis pas le mise en page de la sortie, a moins de la programmer dans ton fichier matlab.

regarde le fprintf et le sprintf dans la doc

nom de fichier : tu lui donnes un nom quelconque

ai-je repondu a ta question ?

En matlab je ne me sers que de l'editeur de texte et de la console.
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1 > pom
16 juin 2005 à 16:26
merci encore, ca repond a mes questions.
pour l'instant j'avance bien grace a ton aide. je te tiens au courant des mes avancees sur ce projet, je connais matlab que depuis 2 semaines. je te recontacterais certainement ces prochains jours.
merci a toi
Laurent
0
pom > laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
16 juin 2005 à 16:49
ok, bon courage en tout cas
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1 > pom
17 juin 2005 à 11:29
bjr pom. j'ai encore qqs petits soucis, et je pense que tu pourrais m'aider... a propos du fichier .txt
je donne un nom et je concatene avec.txt, comme ca il me cree sous le nom que je veux. par contre,
voila ce que j'aimerais faire:

------------------------------------------------------------------------
NUMBER .............FREQUENCY.................VALUES
------------------------------------------------------------------------
1 ......................... f1 ............................ v1
2 ......................... f2 ........................... v2
.... .... .....


je choisis deux frequence et une marche de frequence, je dois afficher ainsi ces differentes frequencede f1 a f2, par pas de prequence et les differentes valeurs coreespondantes, mais j'aierais que ca s'affiche comme ca. en VB je saurais le faire, mais j'ai essaye la meme avec matlab et j'y arrive pas.
je pense faire une boucle while... loop. a la fin de la procedure, je dois ouvrir le fichier, ca e pense que j'y arriverai et l'imprimer en option.
si tu pouvais m'aider, je te serais tres reconnaissant.
Laurent
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1 > pom
17 juin 2005 à 13:37
pom...
je voudrais juste savoir la presentation, comment faire...
Merci
0
salut pom
c bon en fait, ca s'affiche. enfin juste les premieres lignes, je n'ai pas encore trouve comment faire les vecteurs ni la matrice. je potasse. par contre, en tete de page je mets des valeurs de reference. sais tu comment les placer sur la meme ligne.
par exemple, je veux afficher:
frequence1= 900Hz. et il m'affcihe:
frequence1=
900Hz
as tu une idee pour ca?
et aussim peux tu m'expliquer un peu plus en details ton idee de vecteur ou de matrice.
merci
laurent
0
Salut Laurent,
tu veux afficher les fréquences et les valeurs correspndamntes. Ces valeurs sont donc bien stocker quelque part : dans un vecteur, dans un fichier, ou ailleurs.
Pour faire simple, supposons qu'elles soient stockées dans un vecteur F pour les fréquences et V pour les valeurs.
N est un vect
Tu vas donc te créer une matrice A a trois colonnes : 1e colonne le numéro, 2e colonne la fréquence et 3e colonne la valeur

A=zeros(length(F),3); % matrice a length(F) lignes et 3 colonnes ne contenant que des 0 (cf help zeros)

A(:,1)=1:length(F);

for i=1:length(F) % boucle sur les lignes
A(i,2)=F(i);
A(i,3)=V(i);
end

voilà ta matrice A est construite


tu veux afficher sur une même ligne les valeurs de référence. Utilise soit un fprintf soit un vecteur

vecteur :
[fréquence1 frequence2 frequance3]

fprintf :
v1=1:5;
v2=6:10;
for i=1:5,
fprintf('%3.3g \t %3.3g \n',v1(i),v2(i)),
end

regarde la doc fprintf et sprintf pour mieux comprendre.

Salut, et bon courage
0
laurent > pom
20 juin 2005 à 14:08
grand merci a toi.
pratiquement tout marche: l'affcihage sur une ligne, les frequences...
mais j'ai un dernier probleme: la boucle fait trois tours et apres elle s'arrete. je continue de chercher pourquoi mais si t'a une idee?
je pensais que comme j'attends des reponses d'une machine, elle reponds pas assez vite, peut etre un probleme de vitesse, ou de synchronisation. j'ai mis des pause, mais ca marche tjs pas.
connais tu pourquoi ou d'ou vient l'erreur?
laurent
0
pom > laurent
20 juin 2005 à 14:33
Salut,
quelle est ta boucle ?
Affiche les valeurs du compteur (le fameux " i ") et regarde quand est-ce qu'il s'arrête.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
20 juin 2005 à 15:32
c bon, c moi qui est mal tape la boucle, il fallait des ":" et pas des virgules. mais je comprends pas un truc.
quand je demande d'afficher sous matlab, c nikel, il m'affiche avec les bonnes colonnes, bien alignes. par contre apres, auqnd j'ouvre le .txt, il m'affcihe ca sur deux lignes completement decales...
qund j'imprime sou matlab, pas de pb au niveau de l'affichage et pb si j'imprime le .txt. connais tu le probleme?
le premier programme est bientot termine, et ceci beaucoup grace a toi. je te remercie pour cela
Laurent
0
Re-salut, non je ne sais pas.
Est-ce un pb de mise en page (cf les marges de ta feuille) ?

Là, je n'en sais rien.

Bonne continuation.

Pom
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
20 juin 2005 à 16:21
je ne sais, je vois vraiment pas, j'ai essaye de mettre des tab, des trucs pour reperer la marge. rien. bref, c pas grave pour ca
par contre, est ce que tu connais la commande pour imprimer?
j'ai lu la fonction print.
je mis print file_name
et il veut pas m'imprimer. je ne sais pas si c parce que l'imprimante est en reseau ou c un autre probleme.
Laurent
0
Salut, non je ne sais pas. Ne peux-tu pas imprimer sans passer par Matlab ? Tu peux ouvrir un shell et faire lpr non ?
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
28 juin 2005 à 16:18
salut pom. j'ai encore des petits problemes avec matlab. je voudrais choisir une frequence et un timer, par exemple 2secondes. et a cette frequence, je veux obtenir une valeur tous les 2 secondes puisque la valeur change en fonction du temps..... j'ai fait une boucle et g mis une pause(2) mais ca arrete le programme pdt 2 secondes, et j'arrive pas faire ce que je voudrais.
ce me met tjs la meme valeur. je ne sais pas si c la pause qui ne va pas, ou si c mon appareil de mesure...besoin de ton aide
Laurent
0
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492 > laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
28 juin 2005 à 16:48
Pourquoi tu utilises pas une commande du genre cputime ou (tic et toc) ou clock qui te permettent de recuperer des temps.. et en comparant le temps que tu recuperes a chaque avec celui que tu recuperes au debut, tu peux savoir combiend e temps il s'est ecoulé...
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1 > Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006
30 juin 2005 à 11:26
salut Kermitt31
j'ai compris ce que tu m'a dit. maintenant comment je fais pour utiliser ce temps?
tu connais "wait". j'ai lu le help, mais je ne comprend pas comment ca marche....
peux tu m'aider
laurent
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1 > Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006
30 juin 2005 à 11:56
c'est bon, j'ai pu exploiter le temps. mercia toi. j'ai utiliser tic toc....
bref, un dernier service. je dois affciher une grille. je rentre X et Y et un point doit apparaitre, ca pas de probleme. mais apres je dois choisir par exemple, droite, gauche, haut, bas, et une vitesse de deplacement. et bien sur le point doit bouger, temps reel si possible sinon c pas un probleme. sais tu comment faire ca? merci
Laurent
0
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492 > laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005
30 juin 2005 à 14:10
--been visiblement c'est juste une acquisition (haut bas gauche droite) au clavier pour savoir dans quel sens bouger le point et apres des maths (tu recalcules les coordonnées de ton nouveau point) et enfin un plot !
Proverbe Lapon:Girafe au pôl' Nord,
Eté de la mort.
0
laurenttls Messages postés 19 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 juillet 2005 1
21 juin 2005 à 10:27
je travaille sous windows ici.
tant pis pour l'imprimante, en fait, comme j'utilise une interface objet, je voulais mettre une option pour imprimer.
merci a toi en tout cas.
Laurent
0
Pour ceux qui sont toujours intéressés à tourner le texte, il faut utiliser l'option 'Rotation'.
Ex.
ylabel('Titre','Rotation',0);
Comme ça, le texte est tourné de zéro degrés.
0
OK merci
mais alors comment faire pour mettre en exposant (ou en indice) non pas dans un title mais dans un 'static text' lorsqu'on utilise le GUI Matlab.

Merci d'avance.
0
Msayle7 Messages postés 1 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 16 avril 2012
16 avril 2012 à 10:04
tu utilise les mêmes commandes, ça doit marcher je pense ...
0