slt j 'ai une question sur matlab j'ai une matrice 2* ones 3*3 et j'aimerai changer les valeurs de sa diagonale avec par exemple 1 2 3 quelle ligne de commande pourrait m'aider . j'aimerai obtenir 1 2 2; 2 2 2; 2 2 3
merci!
slt j 'ai une question sur matlab j'ai une matrice 2* ones 3*3 et j'aimerai changer les valeurs de sa diagonale avec par exemple 1 2 3 quelle ligne de commande pourrait m'aider . j'aimerai obtenir 1 2 2; 2 2 2; 2 2 3
merci!
Par exemple, en utilisant l'indexage linéaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 >> A = 2*ones(3) A = 2 2 2 2 2 2 2 2 2 >> A([1 5 9]) = [1 2 3] A = 1 2 2 2 2 2 2 2 3
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
merci
mais mon véritable problème est ceci
"Nous souhaitons réaliser une fonction nommée 0DSquare0 dans Matlab qui nous permette
de créer facilement des matrices carrées de n’importe quelle taille et de type :
w a a a a
a x a a a
a a y a a
a a a ::: :::
a a a ::: z
Pour réaliser cette matrice, la fonction aura 2 arguments : la valeur de a (éléments non
diagonaux de la matrice) et un vecteur contenant les éléments diagonaux de la matrice
diag = [w x y ::: z]. "
voici le code que j'ai réalisé mais ça ne donne pas le résultat attendu surtout pour la position des valeurs de la diagonale de ma matrice
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function [ M ] = LIM( v,A ) %UNTITLED2 Summary of this function goes here % M = matrice finale , v elements non diagonaux de la matrice ,A elements % diagonaux de la matrice m= length (A) ; Ma = ones ( m,m)*v % creation de ma matrice carrée avec l'element v souhaité for i = 1:m % parcours lignes for j = 1:m % parcours colonnes for k =1:m % parcours elements A Ma (i,j )= A(k) if ( k >m) break end end end end M = Ma % resultat final end
Bonjour,
pour remplacer les élément diagonaux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Ma(1:size(Ma,1)+1:numel(Ma)) = A;
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
merci ça marche !!!! pourrais tu s'il te plait m'expliquer ce qui se passe surtout au niveau de la fonction numel merci
Bonsoir,
Tout d'abord, il faut savoir comment sont stockées les valeurs au sein d'un tableau 2D : II-D-1. Toute matrice est vecteur ?.
À partir de là, magelan utilise l'indexage linéaire
Prenons un tableau 8x8 :
On souhaite récupérer les éléments d'indices 1 10 19 28 37 46 55 64.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 1 9 17 25 33 41 49 57 2 10 18 26 34 42 50 58 3 11 19 27 35 43 51 59 4 12 20 28 36 44 52 60 5 13 21 29 37 45 53 61 6 14 22 30 38 46 54 62 7 15 23 31 39 47 55 63 8 16 24 32 40 48 56 64
En prenant M = size(Ma,1), nombre d'éléments selon la première dimension (8 ici), on veux les indices :
Le dernier élément étant à l'indice numel(Ma) : le nombre d'éléments du tableau Ma, que l'on peut aussi désigner à l'aide du mot clé end.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1 1+(M+1) 1+2*(M+1) 1+3*(M+1) ... <indice du dernier élément>
Cela nous donne donc des valeurs allant de 1 à numel(Ma) par pas de M+1 = size(Ma,1)+1, d'où :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Ma(1 : size(Ma,1)+1 : numel(Ma))
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager