2015-10-22 7 views
-1

для, например, если у меня есть матрицаКак получить сумму диагонали заданного элемента в матрице?

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 

Как рассчитать сумму диагонали элемента 10, если у меня есть строки и столбца индексов?

Так что выход должен быть 9 + 10 + 7 + 7.

Спасибо!

+0

просто добавляйте и вычитайте индексы строк и столбцов на 1 одновременно и добавьте элемент в эту позицию, если он существует. например, если индекс 10 равен (2,4), тогда сумма диагонали будет (2,4) + (1,3) + (3,5) + (4,6) = 10 + 9 + 7 + 7 – CrakC

ответ

0

Здесь вы идете:

>> 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 

параметризировать индексы в случае, нужно использовать его более чем один раз.

+1

Это не отличается от другого ответа. – rayryeng