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

84 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)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!