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

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
help zeros
help ones