Matrices sur Matlab

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.
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. 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
    1. oui c'est bien ca. Merci beaucoup pour ton aide!
      0