# How to do it?

3 views (last 30 days)
SAYANTAN BHANJA on 11 Jul 2017
Commented: RAMAKANT SHAKYA on 8 Feb 2019
Write a function called halfsum that takes as input an at most two-dimensional array A and computes the sum of the elements of A that are in the lower right triangular part of A, that is, elements in the counter-diagonal (going from the bottom left corner, up and to the right) and elements that are to the right of it. For example, if the input is [1 2; 3 4; 5 6; 7 8], then the function would return 21.
Jorge Briceño on 3 Feb 2018
Hi everyone,
I solved the problem in two ways.
First one, using two for loops.
function [counter] = halfsum (A)
% ii = rows ; jj = columns
[m,n]=size(A);
counter = 0;
col=1;
for ii=m:-1:1
for jj=col:n
counter=counter + A(ii,jj);
end
col=col+1; % This line will add a number to your column value,
% so you will not start in the first column again.
end
counter;
end
Second one, using a for loop and an if statement.
function [counter] = halfsum (A)
% ii = rows ; jj = columns
[m,n]=size(A);
counter = 0;
ii=m;
for jj=1:n
if ii>0 % This contidion is mandatory, otherwise the ii could be equal zero, which will result in an error
counter=counter + sum(A(ii,jj:n)); % Function sum(A(ii,jj:n)) sums all the column in a row.
ii=ii-1; % This is equivalent to a row for loop.
end
end
counter;
end
I hope it helps.
Cheers!

Image Analyst on 11 Jul 2017
Hints. Look at functions size() (to get the size of the matrix), and sum(), tril(), triu(), flipud(), and/or flidlr(). Or simply use a nested for loop for a brute force method.

Srishti Saha on 7 Apr 2018
This code works perfectly for me:
%function to compute sum of lower most right side triangle in an X*2 matrix
function u = halfsum(P)
u1 = P(end:-1:1, 1:end);
u2 = triu(u1);
u = sum(u2(:));
end

RAMAKANT SHAKYA on 7 Feb 2019
Edited: RAMAKANT SHAKYA on 8 Feb 2019
function s=halfsum(a)
[m,n]=size(a);
s=0;
a=flip(a);
for r=1:m
for c=n:-1:r
s=s+a(r,c);
end
end
end
##### 2 CommentsShow 1 older commentHide 1 older comment
RAMAKANT SHAKYA on 8 Feb 2019
thank you sir for improving me.