how to get sum of elements of lower right triangular matrix.? i have tried this one, can anyone please correct this one
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
vamshidhar Reddy Peruvala
el 2 de Dic. de 2016
Respondida: Ibrahim Abouemira
el 19 de Mayo de 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 comentarios
Respuesta aceptada
Más respuestas (2)
Image Analyst
el 2 de Dic. de 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 comentarios
vamshidhar Reddy Peruvala
el 4 de Dic. de 2016
Editada: vamshidhar Reddy Peruvala
el 4 de Dic. de 2016
Image Analyst
el 4 de Dic. de 2016
The j loop should start at i, not n. And use theSum instead of sum. And the "if" is unnecessary.
Ibrahim Abouemira
el 19 de Mayo de 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 comentarios
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!