how to get sum of elements of lower right triangular matrix.? i have tried this one, can anyone please correct this one
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
vamshidhar Reddy Peruvala
am 2 Dez. 2016
Beantwortet: Ibrahim Abouemira
am 19 Mai 2019
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
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
Image Analyst
am 2 Dez. 2016
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(:))
2 Kommentare
Image Analyst
am 4 Dez. 2016
The j loop should start at i, not n. And use theSum instead of sum. And the "if" is unnecessary.
Ibrahim Abouemira
am 19 Mai 2019
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.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!