필터 지우기
필터 지우기

how to get sum of elements of lower right triangular matrix.? i have tried this one, can anyone please correct this one

조회 수: 4 (최근 30일)
function [sum] = halfsum( a )
[m, n]=size(a); sum=0;
for i= m:-1:1
for j=n:-1:1
if i==j || j<=i
sum=sum+a(i,j);
end
end
end
end
output: halfsum([1 2 3;4 5 6;7 8 9])
ans =
34

채택된 답변

Andrei Bobrov
Andrei Bobrov 2016년 12월 2일
out = sum(a(rot90(tril(ones(size(a))),1)>0));

추가 답변 (2개)

Image Analyst
Image Analyst 2016년 12월 2일
Don't use sum() as the name of your variable! You're destroying a built-in function. I wish we could make this a sticky on the forum because it happens so often, probably more often than people confusing (row,column) with (x,y).
Use tril and fliplr like this:
m = magic(9) % Sample matrix.
lowerRight = fliplr(tril(fliplr(m)))
theSum = sum(lowerRight(:))

Ibrahim Abouemira
Ibrahim Abouemira 2019년 5월 19일
Hello,
Here's a proposed answer to your question.
The function takes as input at the most two-dimensional array. It computes the sum of the elements of that are in the lower right triangular part(counter-diagonal elements).
For example, if the input is [1 2; 3 4; 5 6; 7 8], then the function would return 21.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by