Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[MATLAB] Légende des axes

jebok, le mardi 7 juin 2005 à 21:33:39
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 Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)
Configuration: Matlab 7
Répondre à jebok  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le mercredi 8 juin 2005 à 09:18:18
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.
Répondre à pom

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jebok, le mercredi 8 juin 2005 à 13:35:39
je te remercie pour ces explications, ca marche nickel !
Par contre, j'ai toujours pas trouvé pour faire tourner les légendes des axes.

Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)
Répondre à jebok

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le mercredi 8 juin 2005 à 14:36:24
Salut, concernantv les axes, je ne sais pas...
Répondre à pom

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le jeudi 16 juin 2005 à 10:42:46
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
Répondre à laurenttls

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le jeudi 16 juin 2005 à 13:45:47
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
Répondre à pom

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurent, le jeudi 16 juin 2005 à 15:05:29
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
Répondre à laurent

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le jeudi 16 juin 2005 à 15:52:02
Salut Laurent, excuse-moi, mais je n'ai rien compris à ton problème...

que veut dire
"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" ?

qu'est-ce qu'un popupmenu ?

Peux-tu être un peu plus explicite s'il te plait ?

Merci
Répondre à pom

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le jeudi 16 juin 2005 à 16:04:30
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
Répondre à laurenttls

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le jeudi 16 juin 2005 à 16:19:59
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.
Répondre à pom

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le jeudi 16 juin 2005 à 16:26:41
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
Répondre à laurenttls

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le jeudi 16 juin 2005 à 16:49:57
ok, bon courage en tout cas
Répondre à pom

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le vendredi 17 juin 2005 à 11:29:45
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
Répondre à laurenttls

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le vendredi 17 juin 2005 à 14:44:26
Salut Laurent, si je t'ai bien compris, tu veux afficher toutes les frequences comprises entre f1 et f2 par un certain pas.

1e idee :
1) tu te crees une matrice A a 3 colonnes qui contient toutes les valeurs desirees
2) tu fais ensuite :

diary mon_fichier.txt
disp('NUMBER FREQUENCY VALUES')
A
diary off

2e idee

tu te crees trois vecteurs v1, v2 et v3 qui contiennent respectivement les numbers, frequency et values puis tu peux faire

diary mon_fichier.txt
disp('NUMBER FREQUENCY VALUES')
for i=1:length(v1)
fprintf('%5.5g','\t','%5.5g','\t','%5.5g','\n',v1(i),v2(i),v­3(i))
end

diary off

voila, j'espere que ca t'aide...
Répondre à pom

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le vendredi 17 juin 2005 à 13:37:42
pom...
je voudrais juste savoir la presentation, comment faire...
Merci
Répondre à laurenttls

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le vendredi 17 juin 2005 à 17:11:45
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
Répondre à laurenttls

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurent, le lundi 20 juin 2005 à 10:32:06
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
Répondre à laurent

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le lundi 20 juin 2005 à 13:51:35
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
Répondre à pom

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurent, le lundi 20 juin 2005 à 14:08:04
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
Répondre à laurent

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le lundi 20 juin 2005 à 14:33:02
Salut,
quelle est ta boucle ?
Affiche les valeurs du compteur (le fameux " i ") et regarde quand est-ce qu'il s'arrête.
Répondre à pom

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le lundi 20 juin 2005 à 15:32:08
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
Répondre à laurenttls

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le lundi 20 juin 2005 à 16:12:10
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
Répondre à pom

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le lundi 20 juin 2005 à 16:21:43
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
Répondre à laurenttls

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pom, le mardi 21 juin 2005 à 09:37:31
Salut, non je ne sais pas. Ne peux-tu pas imprimer sans passer par Matlab ? Tu peux ouvrir un shell et faire lpr non ?
Répondre à pom

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le mardi 28 juin 2005 à 16:18:47
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
Répondre à laurenttls

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kermitt31, le mardi 28 juin 2005 à 16:48:44
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é... Proverbe Lapon:Girafe au pôl' Nord,
Eté de la mort.
Répondre à Kermitt31

27


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le jeudi 30 juin 2005 à 11:26:59
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
Répondre à laurenttls

28


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le jeudi 30 juin 2005 à 11:56:42
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
Répondre à laurenttls

29


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kermitt31, le jeudi 30 juin 2005 à 14:10:26
--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.
Répondre à Kermitt31

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
laurenttls, le mardi 21 juin 2005 à 10:27: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
Répondre à laurenttls

30


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
En_retard, le vendredi 8 août 2008 à 21:38:45
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.
Répondre à En_retard

31


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 en_avance, le jeudi 4 septembre 2008 à 12:18:36
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.
Répondre à en_avance