création d'une matrice paramétrée - C - Programmation
MarshPosté le 03-10-2008 à 22:59:33
bonjour à tous,
quelqu'un pourrait m'aider à trouver la syntaxe sous matlab pour créer une matrice A en fonction du paramètre a=0:0.1:1 (allant de 0 à 1 avec un pas de 0.1) cette matrice carrée de dimension (5) doit avoir 1 en diagonale et a ailleurs.
j'ai construit cette syntaxe avec a=0.5 et j'ai obtenu un matrice diagonale avec 1 en diagonale et 0.5 en dehors de la diag. >> A=0.5*ones(5,5); >> for i=1:5; A(i,i)=1; end >> A 1.0000 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000
c'est bien mais il me faut une fonction qui donne en sortie une matrice paramétrée. histoire de A(a)= matrice, dim 5, 1 en diag et a ailleurs. j'ai essayé d'autres formulation mais en vain. par exemple:
for rho=0:0.1:0.9 A=rho.*ones(5,5); for i=1:5; A(i,i)=1; end end >> A 1.0000 0.9000 0.9000 0.9000 0.9000 0.9000 1.0000 0.9000 0.9000 0.9000 0.9000 0.9000 1.0000 0.9000 0.9000 0.9000 0.9000 0.9000 1.0000 0.9000 0.9000 0.9000 0.9000 0.9000 1.0000
à chaque fois matlab ne tient compte que de la dernière valeur de a !!
il doit y en avoir une astuce n'est ce pas .. merci d'avance pour votre aide.
Marsh Posté le 03-10-2008 à 22:59:33
bonjour à tous,
quelqu'un pourrait m'aider à trouver la syntaxe sous matlab pour créer une matrice A en fonction du paramètre a=0:0.1:1 (allant de 0 à 1 avec un pas de 0.1) cette matrice carrée de dimension (5) doit avoir 1 en diagonale et a ailleurs.
j'ai construit cette syntaxe avec a=0.5 et j'ai obtenu un matrice diagonale avec 1 en diagonale et 0.5 en dehors de la diag.
>> A=0.5*ones(5,5);
>> for i=1:5;
A(i,i)=1;
end
>> A
1.0000 0.5000 0.5000 0.5000 0.5000
0.5000 1.0000 0.5000 0.5000 0.5000
0.5000 0.5000 1.0000 0.5000 0.5000
0.5000 0.5000 0.5000 1.0000 0.5000
0.5000 0.5000 0.5000 0.5000 1.0000
c'est bien mais il me faut une fonction qui donne en sortie une matrice paramétrée. histoire de A(a)= matrice, dim 5, 1 en diag et a ailleurs.
j'ai essayé d'autres formulation mais en vain. par exemple:
for rho=0:0.1:0.9
A=rho.*ones(5,5);
for i=1:5;
A(i,i)=1;
end
end
>> A
1.0000 0.9000 0.9000 0.9000 0.9000
0.9000 1.0000 0.9000 0.9000 0.9000
0.9000 0.9000 1.0000 0.9000 0.9000
0.9000 0.9000 0.9000 1.0000 0.9000
0.9000 0.9000 0.9000 0.9000 1.0000
à chaque fois matlab ne tient compte que de la dernière valeur de a !!
il doit y en avoir une astuce n'est ce pas ..
merci d'avance pour votre aide.