Aide sur matlab

Résolu/Fermé
lpasf - 29 juil. 2004 à 01:04
 m - 9 nov. 2011 à 19:44
Bonjour à tous
Je suis un étudiant qui prépare son DEA en physique (météorologie) et j'aimerais que quelqu'un m'aide sur matlab.En fait je suis un débutant et je veux savoir quoi connaitre d'abord pour puvoir avancer.

Merci de vouloir m'aider

9 réponses

Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
29 juil. 2004 à 11:54
Pom ca m'interresse ton aide sur Matlab...juste pour un petit remenber ^^

COIN!
2
Salut, voici un fichier qui normalement doit bien fonctionner. Mais je n'ai pas pu le tester.
Il y a ici toutes les fonctions de bases. Avec ca, tu peux faire énormément de prgm.

cree toi un fichier main.m (par exemple)
recopie cet exemple
dans la feuille de travaille tape : main
(et normalement ca ne devrait pas planter)

clear all % efface toutes les variables qui sont dans la worksheet
close all % ferme toutes les figures

% pour afficher une variable, retirer le point virgule
% le 1e element d un tableau a l indice 1 (attention en c++ c est l indice 0 !!)

a=rand(3,5); % cree une matrice 3*5 de nombre aleatoire tires suivant la loi uniforme sur [0,1]

b=a'; % calcule la transconjugue de la matrice a (donc si a est une matrice de reels c'est la meme chose que la transposee)

c=1:5; % cree un vecteur ligne [1 2 3 4 5]

d=(1:0.1:4)'; % cree un vecteur colonne (car il y a la transconjuguee)

clear c % efface la variable c

e=d(1:10); % recupere les elements d'indices 1 a 10 du vecteur d

f=d(end-5:end); % recupere les 5 derniers elements de d

g=a(1,:); % on recupere la 1e ligne de a. C'est la meme chose que g=a(1,1:end)

h=sort(g); % trie dans l'ordre croissant le vecteur g

i=fliplr(g); % retourne le vecteur g de droite à gauche "fliplr pour flip left right"

j=flipud(d); % idem que i mais up down

jj=rand(1:30);
jjj=jj>0.2 % renvoie des 1 si la composantes est >0.2 et 0 sinon
find(jj>0.2); % renvoie les NUMEROS des INDICES qui ont les composantes > 0.2


figure(1) % on ouvre la 1e figure
plot(a(1,:),a(2,:),'r+') % trace en abscisse a(1,:) et en ordonnee a(2,:) en rouge (d ou le r) et avec des croix (d ou le +)
% faire help plot dans l'espace de travail
hold on % pour superposer plusieurs graphes sur la MEME figure car sinon le graphe suivant efface le graphe precedent
plot(a(2,:),a(3,:),'bo')
title('titre de la figure')
legend('1e graphe','2e graphe')
xlabel('toto')
ylabel('mimile')
axis equal % faire help axis (ce qui sert souvent est axis([xmin xmax ymin ymax])

v=0:0.001:2*pi;
x=cos(x); % prend le cosinus de chaque composante du vecteur v
y=sin(x);

figure(2) % on ouvre la 2e figure
plot(v,x,'y')
hold on
plot(v,y,'g')
legend('cosinus','sinus')

size(a);
size(a,1);
size(a,2);
length(d);

% concatenation de vecteurs
l=[1:5 10];
m=[1 2 3;4 5 6;7 8 9]; % les espaces ou la virgule c est la meme chose
n=[a(:,1) a(:,2)];

% les strings
o='ma_string';
length(o);
p=num2str(10); % convertit un nombre en une string
length(p)
str2num('10') % convertit une string en un nombre

q=['string1' 'string2']; % concatenation des deux strings
% donc en cumulant num2str et title on peut obtenir :
% title(['vitesse du solide en fonction du temps avec une vitesse initiale de',num2str(vit_ini),'metre par seconde'])
% en supposant que la variable vit_ini contienne un nombre

save nom_fichier % sauvegarde sur le disque dur TOUTES les variables dans le fichier nom_fichier.mat
%load('nom_fichier.mat') pour le charger
%save nom_fichier x y a ne sauvegarde que les variables x, y et a dans le fichier nom_fichier.mat

% les boucles, les tests
%for i=1:5
v(i)=2.5*i;
end

% en plus rapide ca donne v=2.5*(1:5);

% for i=1:5
% if(v(i)==2)
% aa(i)=4;
% elseif (v(i)>3)
% aa(i)=6;
% else
% aa(i)=8;
% end % fin du si
% end % fin du pour

% en plus rapide ca donne aa=4*(v==2)+6*(v>3)+8*(v<=3)

% soient 2 vecteurs de meme longueurs v1 et v2. Si la ieme composante de v1 est < 3 ou est > 6 alors v3=v2(i)
% le "ou" est | et le "et" est & et le "different" est ~=
v1=[1 4 3 0 -9 8 7 1 0.2 9 7 4];
v2=rand(1,length(v1));

%compteur=1;
% for i=1:length(v1)
% if( (v1(i)<3) | (v1(i)>6) )
% v3(compteur)=v2(i);
% compteur=compteur+1;
% end
% end

% en plus rapide :
% aux=find( (v1<3) | (v1>6) );
% v3=v2(aux);

% Matlab prefere la manipulation des vecteurs que l utilisation des boucles for !!!!
% Matlab pour Matrix Laboratory

compteur=1;
% while(compteur~=5)
% v4(compteur)=compteur;
% compteur=compteur+1;
% end

% en plus rapide : v4=1:4

faire aussi :
help det
help exp
help eig
help diag
help kron
help pause
help return
help disp
help prompt

pour faire une fonction que l'on va appeler ma_fonction qui prend un parametre et qui renvoie une valeur
1) ouvrir un fichier ma_fonction.m
2) function r=ma_fonction(a)
% on suppose que a est un vecteur
r=find(a>4); % renvoie les indices du vecteurs a qui ont une composantes > 4
3) dans ton script (que tu appelles main.m)

z=ma_fonction(w);

pour qu'une fonction renvoie plusieurs valeurs (des entiers, des matrices, des vecteurs)

function [entier,matrice,vecteur]=ma_fonction(vecteur)
les crochets et les virgules sont très importantes !
je crois que le vecteur renvoyé doit etre un vecteur colonne.

Pom
0
regarder aussi
help zeros
help ones
0
(je bosse sur des images)
g un petit pb je cherche a multiplier deux matrice une 3lignes*5colonnes pas une 5*5 normalement ça devrai me donner une 3*5 mais matlab me parle d'erreur de dimension
merci d'avance
je vais me coucher bonne nuit
1
Il faut double-cliquer sur le graph à l'endroit data 1 et là tu peux écrire le nom de la variable que tu veux.
1
si tu veux multiplier ces 2 matrices, il faut que tu multiplie la matrice 5x5 par la matrice 3x5, et pas l´inverse.
Il n´est pas possible de faire autrement, meme avec Matlab.
@+
0

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

Posez votre question
Utilisateurs de matalab bonjour

J'ai aussi a utilisé ce logiciel complexe.
Je cherche simplement à pouvoir donner un nom à mes 3 variables que j'ai représenté dans une seul figure que je voudrais légender. Mais par défaut il met : la courbe jaune = data1, la courbe bleu = data2, la courbe rouge = data3.
Comment puis-je changer ces "data" ? Merci.
0
utilise après ton plot la commande legend.

legend('Nom data1','Nom data2','Nom data3')

Pour la couleur, tu dois le spécifier dans ton plot.
Par exemple, plot(x,data1,'r') te plottera data1 en fonction de x, en rouge!!
0
bonjour,
j'ai une matrice (n x m) je veux avoir le vecteur dont ses éléments sont les lignes de cettes matrice.

je dépends de vos aides

merci par avance.
0
sofiene_b Messages postés 1 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 5 mai 2008
5 mai 2008 à 15:22
bonjour
je fait le traçage des courbe I(V) a l aide de Matlab et j aimerai bien savoir comment pourrai je extraire l'ordonnée d'une point en connaissant son abscisse graphiquement.
merci d avance
0
ok, envoie moi ton mail. Je vais te scanner un aide de matlab et je te l'enverrai (environ 10 pages). Cette aide contient toutes les fonctions de bases et l'utilisation des tableaux.

Matlab veut dire : Matrix Laboratory.
Matlab ne fonctionne que par tableaux : matrice, vecteur...
C'est l'idée de base.

Je rentre à Paris vendredi soir. Envoie-moi ton mail avant vendredi 15h00.
-1
Bonjour à tous
Un gros débutant cherche quelqu'un qui puisse l'aider sur matlab.Ya dèja pom qui s'est manifesté et je voudrais en avoir d'autres qui pourront faire autant que pom.En fait mes études m'obligent à connaitre et à comprendre la programmation sur matlab.
Mon e-mail: malick172@hotmail.com

Merci à vous tous de vouloir m'aider
0
j'ai l'honneur de vous demander de bien vouloir pour envoyer sur ma boite email les instruction du matlab sur le demaine traitement d'image d'une facons générale et surtout sur le réseau de neurone
-2
sophie l'âne
3 mai 2010 à 16:43
Permettez-moi de vous chier dessus pour vos formules ridicules...
Cordialement.

Votre dévoué serviteur et celui de la langue française par la même occasion !
0
c'est beau sophie :')
0
c'est odieux de répondre aux gens comme ça !!! ah les français, toujours à se plaindre en perdant l'essentiel de ce qu'il faut faire là où il est nécessaire de le faire :)
0