Write a function called halfsum that takes as input an at most two-dimensional matrix A and computes the sum of the elements of A that are in the diagonal or are to the right of it. example, the input is [1 2 3; 4 5 6; 7 8 9],the ans is 26

327 ビュー (過去 30 日間)
Deepanshu Parihar
Deepanshu Parihar 2015 年 5 月 28 日
function s = halfsum(A)
[row col] = size(A);
if row ~= col
error('Expecting a square matrix here people...');
end
s = 0;
for ii = 1:row
for jj = ii:col
s = s + A(ii,jj);
end
end
  14 件のコメント

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

回答 (10 件)

Buwaneka Dissanayake
Buwaneka Dissanayake 2020 年 6 月 21 日
function summa = halfsum(M)
[a b] = size(M);
if a>1
for n = 1:a;
for m = 1:b;
if n>m;
M(n,m) = 0;
summa = sum(sum(M));
end
end
end
else
summa = sum(M);
end
end

Joseph Cheng
Joseph Cheng 2015 年 5 月 28 日
your input should be
input = [1 2 3;4 5 6;7 8 9]
and not
input = [1 2 3 4 5 6 7 8 9]
  1 件のコメント
Joseph Cheng
Joseph Cheng 2015 年 5 月 28 日
which if you read carefully the problem statement and the code the input is a 3x3 square matrix. the input you provided it was a 1x9 array.

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


Sean de Wolski
Sean de Wolski 2015 年 5 月 28 日
f = @(x)sum(sum(triu(x))) % make function
f(magic(3)) % use it

Pragyan Dash
Pragyan Dash 2020 年 9 月 19 日
%this worked for me. Happy to help!
function summa = halfsum(M)
[row col] = size(M)
summa = 0;
for ii = 1:row;
for jj = 1:col;
if jj >= ii;
summa = summa + M(ii, jj);
end
end
end

Srishti Saha
Srishti Saha 2018 年 4 月 7 日
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

Ajith Bharadwaj
Ajith Bharadwaj 2020 年 2 月 3 日
function summa = halfsum(A)
[row col] = size(A);
for ii = 1:row
for jj = ii:col
summa = summa + A(ii,jj);
end
end
  5 件のコメント
Amit Jain
Amit Jain 2020 年 11 月 3 日
I hope this clears your doubt. You did not tell function what to if there is n ==1 means there is column vector. I have made this correction. Now function works fine. Thanks

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


ERTIZA HOSSAIN SHOPNIL
ERTIZA HOSSAIN SHOPNIL 2020 年 5 月 21 日
function summa=halfsum(A)
t=triu(A);
list=sum(t);
s=0;
for n=list
s=s+n;
end
summa=s;
end
  3 件のコメント
Rik
Rik 2020 年 8 月 24 日
That means you will have to copy another answer to cheat on your homework. Or think yourself.

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


saurav Tiwari
saurav Tiwari 2020 年 6 月 25 日
function summa=halfsum(a)
[m,n]=size(a)
for i=1:m
j=1:n
x(i)=sum(a(i,j))
end
summa=sum(x)
end
  2 件のコメント
Walter Roberson
Walter Roberson 2020 年 6 月 25 日
Incorrect code. This calculates sums of an entire row, not the sum of the diagonal and right of the diagonal.

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


youssef boudhaouia
youssef boudhaouia 2020 年 7 月 27 日
A solution with double For-loop:
function summa=halfsum(M)
summa=0;
s=size(M);
for i=1:s(1)
for j=1:s(2)
if j>=i
summa=summa+M(i,j);
else
summa=summa;
end
end
end
  4 件のコメント
Walter Roberson
Walter Roberson 2020 年 8 月 4 日
You do not need the if condition if you use
for j=i:s(2)

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


Abdul Quadir Khan
Abdul Quadir Khan 2020 年 10 月 18 日
function summa = halfsum(x)
[row,col] = size(x);
allsum=0;
for n=1:row
for c=n:col
allsum=x(n,c)+allsum;
end
end
summa=allsum;

Community Treasure Hunt

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

Start Hunting!

Translated by