Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Bizarre result of the sum() function in MATLAB

  1. Mar 16, 2010 #1
    Hello,

    Am was trying to figure out why some code was not working and narrowed it down to a little loop that was not being executed.

    x is a 4x1 vector with 0 or 1 as each element, eg. x = [0; 0; 1; 1]. The code was required to sum the columns and if this sum was positive (ie. if there were any nonzero elements) it would execute another loop.

    The vector was [1; 1; 1; 1] and it was not executing, so I tested the code. Here is copy pasted results of me experimenting and eventually fixing the problem using "clear all" command:


    Code (Text):
    x =
         1
         1
         1
         1
    EDU>> sum(x)
    ans =
        1.4142    1.4142         0         0
    EDU>> sum(x')
    ans =
        1.4142    1.4142         0         0
    EDU>> x=[1;1;1;1]
    x =
         1
         1
         1
         1
    EDU>> sum(x)
    ans =
        1.4142    1.4142    1.4142    1.4142
    EDU>> r = [1,2,3]
    r =
         1     2     3
    EDU>> sum(r)
    ans =
        1.4142    1.4142         0
    EDU>> clear all
    EDU>> r = [1,2,3]
    r =
         1     2     3
    EDU>> sum(r)
    ans =
         6
    The "clear all" seems to fix everything. But I can't figure out what was wrong. I wasn't doing anything out of the ordinary. Anyone have any ideas what was going wrong?

    Thanks
    Michael
     
  2. jcsd
  3. Mar 17, 2010 #2
    You probably accidentally defined sum to mean something else some place earlier. This would shadow the built in function until you cleared it.
     
  4. Jun 6, 2012 #3
    why are you trying to do this in the command window its easier to do this in a editor. just click the new script icon on the top left next to open project. this error might be because you had another variable name x thats messing with your results you can usually see in the workspace box. when you use clear all you release the data on all the variables you've been working on so far so thats why your new variable r is working
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook