2015-10-22 1 views
-1

pour, par exemple, si j'ai une matriceComment calculer la somme de la diagonale d'un élément spécifié dans une matrice?

4  5  9  8  3  8 
3  2  4 10  1  3 
1  9  9  6  7  7 
2  1  7  4  6  7 
2  6  3  5  4  2 
7  2  2  9  3  4 

Comment puis-je calculer la somme de la diagonale de l'élément 10 si j'ai ses indices de lignes et de colonnes?

Ainsi, la sortie doit être 9 + 10 + 7 + 7.

Merci!

+0

Il suffit d'ajouter et de soustraire les indices de ligne et de colonne de 1 en même temps et d'ajouter l'élément à cette position s'il existe. par exemple, si l'indice de 10 est (2,4) alors la somme de diagonale sera (2,4) + (1,3) + (3,5) + (4,6) = 10 + 9 + 7 + 7 – CrakC

Répondre

4
column = 4; 
row = 2; 
output = sum(diag(A, column - row)); 
0

Ici, vous allez:

>> x = [4,5,9,8,3 ,8 
3,2,4,10,1, 3 
1,9,9,6,7 ,7 
2,1,7,4,6 ,7 
2,6,3,5,4 ,2 
7,2,2,9,3 ,4] 
x = 

    4 5 9 8 3 8 
    3 2 4 10 1 3 
    1 9 9 6 7 7 
    2 1 7 4 6 7 
    2 6 3 5 4 2 
    7 2 2 9 3 4 

>> xsum = sum(diag(x,4-2)); 
>> xsum 
xsum = 33 

paramétrons les indices dans le cas où vous avez besoin d'utiliser plus d'une fois.

+1

Ce n'est pas différent de l'autre réponse. – rayryeng