Matrices sur Matlab

cycy -  
 cycy -
Bonjour,
je travaille en ce moment sur Matlab et je cherche à créer une matrice S carrée n*n de la forme suivante:
Par exemple pour n=4,

S=[K 1 0 0;1 K 1 0;0 0 1 K];

j'aimerais écrire cette matrice pour des nombres n élevés (>7).
En fait, j'ai écrit :

S=zeros(n);
pour i=j,
S(i,i)=K;

pour i>j,
S(i,j)=triu(eye(n));

pour i<j
S(i,j)=tril(eye(n));

Mais ce n'est pas bon car en utilisant les fonctions triu et tril je remplace ma grande diagonale définie pour i=j à chaque fois par la grande diagonale de la matrice identité alors que je veux que la grande diagonale reste S(i,i)=K. Je ne sais pas si c'est très clair ce que j'ai dit mais j'espère que vous pourrez m'aider à en voir plus clair.
P.S: je ne suis pas très douée en Matlab!!

Merci d'avance.

1 réponse

damlegone32 Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   29
 
Salut,

Je sais pas si j'ai bien compris la forme de ta matrice mais essaye ce simple bout de code.

S = K*eye(n)

for i=1:n-1
S(i,i+1) =1;
S(i+1,i) =1;
end


T'obtiens pour n =5 : S=
|K 1 0 0 0|
|1 K 1 0 0|
|0 1 K 1 0|
|0 0 1 K 1|
|0 0 0 1 K|

C'est bien ça la forme de la matrice?

A+
0
cycy
 
oui c'est bien ca. Merci beaucoup pour ton aide!
0