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

Matlab: If/Elseif 2 conditions.

  1. Nov 2, 2011 #1
    Hi

    I'm new to matlab and I'm trying to write a code that executes the same process under two separate conditions>

    condition 1: that scalar value dE is less than or equal to zero.
    condition 2: that scalar value r is less than or equal to scalar value w.

    I'd like to same series of calculations to be executed if either of these conditions are true (or both) like an OR statement.

    I've tried to accomplish this using an if and elseif combination.

    r=0
    w=1
    dE=0
    L1=ones(N)

    for i=1:t

    if (dE<=0)
    elseif (r<=w)

    <program statements>

    else

    <final condition>
    end


    However, it does not seem to be working. Most examples of the elseif statement I've seen online has two separate series of commands for the if and elseif condition

    e.g

    if expression1
    <program statements1>
    elseif expression2
    <program statements2>
    end


    Is it possible that my code will not work unless I write the if/elseif statements separate (i.e. copy and paste my current process)? If so, is there another method I could use or do I need to repeat my statements.

    Thanks
     
  2. jcsd
  3. Nov 5, 2011 #2

    MATLABdude

    User Avatar
    Science Advisor

    MATLAB also allows you to do disjunctive conditions. What're disjunctive conditions? That's fancy-talk for OR-ing two things (in this case, using the OR operator, the pipe |). If you're familiar with C, that probably looks pretty familiar--in fact, MATLAB uses the same operators, both logical and bit-wise.

    Assume you have two numbers A and B. Let's say you want some code to execute if A is less than 5 or B is >10. To do that, you'd do the following:

    Code (Text):

    if (A < 5 | B > 10)
         A * B
    end
     
    For completeness sake, it's usually best to put brackets around logical conditions in the order that you wish for them to be evaluated (say, when you have three or more operations or conditions--it's not always left to right).

    Unfortunately, the only way an elseif statement would work is if you pasted the exact same code under the if statement as you do under the else-if statement. In short, use the power of logical operators:
    http://www.mathworks.com/help/techdoc/matlab_prog/f2-97022.html#brftcpu-1 [Broken]
     
    Last edited by a moderator: May 5, 2017
  4. Nov 5, 2011 #3
    Great. That helped a lot. Thanks.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Matlab: If/Elseif 2 conditions.
  1. MATLAB num2str 2 (Replies: 6)

Loading...