How to sum only the positive elements in a vector using an If-Statement?

7 views (last 30 days)
How do you only sum the positive elements in a vector using an if statement?
  3 Comments
Jason
Jason on 7 Oct 2014
function result = sumPositive(vector)
%-------------------------------------------------
result = 0;
for k = 1:1:length(vector)
if (vector(k) >= 0)
result = result + sum(vector(k));
end
end
and the test program is
clear;
clc;
close all;
% Test 1 for sum of only postive integers
vector = [10, -5, 0, 12, 14];
result = sumPositive(vector);
disp('The sum of the positive elements is: ')
disp(result)
What I'm not sure of is I need to put a statement to skip the negative numbers or how would I deal with those?
Geoff Hayes
Geoff Hayes on 7 Oct 2014
Jason - your code above looks good. The statement if (vector(k) >= 0) will ensure that you only add positive numbers to your result local variable.
Note that in your line
result = result + sum(vector(k));
you don't need the sum function, since vector(k) is a single element. The above can be replaced with just
result = result + vector(k);
Note also, that the default step size, for loops, is 1. So the
for k = 1:1:length(vector)
can be replaced with
for k = 1:length(vector)

Sign in to comment.

Accepted Answer

Mohammad Abouali
Mohammad Abouali on 7 Oct 2014
You can do that without if
let's say d is your array of positive and negative numbers. You want to sum only the positive ones then just do this:
sum(d(d>0))
  3 Comments
Amanda
Amanda on 20 Sep 2023
Hello, I think you are very beutiful. Are you married yet? (; (im over 18!)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!