[Matlab] Créer et remplir un vecteur ligne
Résolu
manu78640
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
Loulou&Kathhhhy -
Loulou&Kathhhhy -
A voir également:
- Matlab vecteur
- Déclarer un vecteur matlab - Meilleures réponses
- Vecteur en matlab - Meilleures réponses
- Vecteur sur word ✓ - Forum Word
- Coordonnées de vecteurs en colone avec Word 2021 ✓ - Forum Word
- Écrire des vecteurs sur word 2003 - Forum Word
- Vecteur en c - Forum C
- Comment écrire le nom d'un vecteur ? - Forum Bureautique
1 réponse
Bonsoir mon ami !
Avec Matlab, les déclarations ne sont pas utiles et il est plus rapide de travailler en vectoriel. Pour cela, la plupart des fonctions Matlab s'utilise vectoriellement (cos, sin, log, ...) et les opérateurs * / ^ etc... peuvent s'utiliser membre à membre en ajoutant un . avant les opérateurs comme ceci : .* ./ .^
Si tu n'as pas d'autre choix que de remplir un vecteur dans une boucle, bien qu'il ne soit pas nécessaire de déclarer sa taille avant l'entrée dans la boucle, il est quand même plus rapide de le faire, sinon Matlab va se voir obligé d'updater l'espace mémoire réservée au vecteur à chaque passage dans la boucle en question ; dans ce cas, une solution possible est de définir initialement un vecteur de la taille voulue rempli de zéros par exemple.
Voici quelques exemples quelques commandes simples.
Enfin, voici quelques explications supplémentaires concernant ces histoires de boucle et de vectorialisation. Supposons que tu veuilles définir le vecteur v=[exp(1²), exp(1/2²),exp(1/3²),...,exp(1/39²),exp(1/40²)], la méthode la plus lente et la plus laide serait la suivante (vraiment une horreur sous Matlab) :
Avec Matlab, les déclarations ne sont pas utiles et il est plus rapide de travailler en vectoriel. Pour cela, la plupart des fonctions Matlab s'utilise vectoriellement (cos, sin, log, ...) et les opérateurs * / ^ etc... peuvent s'utiliser membre à membre en ajoutant un . avant les opérateurs comme ceci : .* ./ .^
Si tu n'as pas d'autre choix que de remplir un vecteur dans une boucle, bien qu'il ne soit pas nécessaire de déclarer sa taille avant l'entrée dans la boucle, il est quand même plus rapide de le faire, sinon Matlab va se voir obligé d'updater l'espace mémoire réservée au vecteur à chaque passage dans la boucle en question ; dans ce cas, une solution possible est de définir initialement un vecteur de la taille voulue rempli de zéros par exemple.
Voici quelques exemples quelques commandes simples.
v=zeros(1,20); % Définit le vecteur ligne de longueur 20 et rempli de 0 v=ones(1,20); % Définit le vecteur ligne de longueur 20 et rempli de 1 v=(1:20); % Définit le vecteur ligne [1,2,3,...,18,19,20] v=(4:3:61); % Définit le vecteur ligne [4,7,10,...,55,58,61] v=(32:-1:13); % Définit le vecteur ligne [32,31,30,...,15,14,13] v=(55:-2:17); % Définit le vecteur ligne [55,53,51,...,21,19,17] v=linspace(0,1,20); % Définit la subdivision régulière de [0,1] de longueur 20Et il y a encore beaucoup d'autres possibilités que tu découvriras...
Enfin, voici quelques explications supplémentaires concernant ces histoires de boucle et de vectorialisation. Supposons que tu veuilles définir le vecteur v=[exp(1²), exp(1/2²),exp(1/3²),...,exp(1/39²),exp(1/40²)], la méthode la plus lente et la plus laide serait la suivante (vraiment une horreur sous Matlab) :
for k=1:20 v(k)=exp(1/k^2); endLa méthode suivante, bien qu'un peu mieux, reste néanmoins une horreur comme la précédente :
v=zeros(1,20) % La taille est connue avant la boucle, c'est mieux for k=1:20 v(k)=exp(1/k^2); endEt pour finir, la méthode à utiliser est celle-ci :
v=exp(1./(1:20).^2);Je te souhaite une bien bonne nuit !
douroc
svp j'arrive pas à faire le test arch sur matlab , quelq'un peut m'expliquer svp sourtout je trouve des difficultés au niveau des résidus
Loulou&Kathhhhy
Merci pour tout on est en TP Préorientation SICOM et ça nous a vachement aidé merci c'est sympa et à +, bisoooooooous !!!!!!!!!!!!!!!!!!