Help figuring out this Function file

1 view (last 30 days)
This isnt HW, its a review for my final exam. I thought I had figured it out until I put in my own values and that just threw away my theory. Help please
  • function [ y ] = mysum2( x,a,b )
  • sum=0;
  • for k=1:length(x)
  • if a<=x(k)<=b
  • sum = sum+x(k);
  • end
  • end
  • y=sum;
  • end
plug in array b b=[4 14 6 3 4 10 8 6]
y=mysum(b,-5,0) y=0
y=mysum(b,1,3) y=55
y=mysum(b,6,7) y=55
y=mysum(b,60,70) y=55
plug in array c=[3 -2 4 4 5 1 -4 -2 7] y=mysum(c,-10,-6) y=0
y=mysum(c,-2,0) y=-4
y=mysum(c,-2,-2) y=16
y=mysum(c,6,7) y=16

Accepted Answer

James Tursa
James Tursa on 19 Apr 2013
Edited: James Tursa on 19 Apr 2013
Your test should be:
if a<=x(k) && x(k)<=b
Your original line is interpreted as follows:
if (a<=x(k))<=b
The first test gives a logical result, which is going to work out to be 1 <= b or 0 <= b depending on the logical result of the first a <= x(k). This is of course not what you intended.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots 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!