Probleme matrice

Bonsoir
merci de m'aider mes amis
je veux écrire cet intervalle sous forme d'une matrice (n,n)
et aux diagonale je veux maitre des valeurs 0.5
j'ai cette proposition (au dessous) mais j'ai obtenu une matrice (4 ligne et 6 colonne) avec redondance de colonnes, merci de trouver l'erreur
intervalle est:

M =

0.0145 0.0166 0.0145 0.0021 0.0021 0.0166
la matrice que je veux obtenir
E=[0.5 0.0145 0.0166
0.0145 0.5 0.0021
0.0021 0.0166 0.5 ]

k=size(M);
d
k=3
% [m,n]=size(E);
for i=1:k
for j=1:k
if i==j
E(i,j)=0.5;
else
E(i,j)=M(k);
end
end
end

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. M = [0.0145 0.0166 0.0145 0.0021 0.0021 0.0166]

    n=3
    k=1 % intialise ton k a un il sert a avancer dans M
    for i=1:n
    for j=1:n
    if i==1
    E(i,j) = 0.5;
    else
    E(i,j) = M(k);
    k = k +1; % Ton erreur est ici... Si tu n'incremente pas quand tu recupere une valeur dans M tu vas tjs recuperer la meme valeur
    end
    end
    end
    Voili voilou :)

    Cordialement.