How to sum the diagonal numbers and numbers after the diagonal of a matrix

33 ビュー (過去 30 日間)
Thomas Sun
Thomas Sun 2020 年 3 月 31 日
回答済み: Matt Shellhammer 2020 年 3 月 31 日
Write a function called halfsum that takes as input a matrix and computes the sum of its elements that are in the diagonal or are to the right of it. The output arguments name is summa.
I have absolutely no idea how to start with this problem. How am I meant to use a for-loop for this?
Thank you very much
  1 件のコメント
Mohammad Sami
Mohammad Sami 2020 年 3 月 31 日
Look at function diag and triu

サインインしてコメントする。

回答 (2 件)

Matt Shellhammer
Matt Shellhammer 2020 年 3 月 31 日
total = 0;
for idx = 1:size(a,1)
total = total + a(idx,idx);
end
or
sum(a(1:(size(a,1)+1):size(a,1)*size(a,2)))
or
sum(diag(a))
and for the indices to the right of it... (assuming its square).
total = 0;
for idx = 1:size(a,2)-1
total = total + a(idx,idx+1);
end

Bhaskar R
Bhaskar R 2020 年 3 月 31 日
function summa = halfsum(inp_mat)
summa = zeros(2,1); % first element is sum of diagonal elements, second is sum of diagonal to right
summa(1) = sum(diag(inp_mat)) %diagnal elemts
summa(2) = sum(diag(inp_mat, 1)) % right to diagonal
end

カテゴリ

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by