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

Matlab question (possibly only a simple math problem)

  1. Oct 30, 2006 #1

    I'm currently writing a program for my computational physics course and ran into this issue with my program.

    The function in matlab rand(1,1) gives you a random number from [0,1) to 4 significant figures. So for example if I ran this function it would look something like this.

    A = rand(1,1)
    A = .5040

    Now I have to use this function to make it randomly choose beetween 3 objects (A,B,C). The problem I run into is that the professor told us to specifically use rand(1,1) for the random pick (Probably to test our math and get more familiar with the program.) Since this produces 10 possible values, then I need to assign (A,B,C) 10/3 apart.

    Object_A = [.0000:.3333]
    Object_B = (.3334:.6666)
    Object_C = (.6667:.9999)

    I set the object_pick = (rand(1,1))
    possible values are (.0000-.9999)

    then just write a bunch of if/else statements to determine which range of values the object_pick value falls.

    Does this approach make sense to you guys from a mathematical point of view? Since the function rand(1,1) in matlab gives you a psuedorandom number as opposed to a truly randomly generated value as in C++, I feel that this method should be acceptable.

    Any feedback, comments, or suggestions are much appreciated. Also, Thanks in to whoever took the time to read this.
  2. jcsd
  3. Oct 30, 2006 #2
    Depending on how picky your prof is, the likelihood of object A coming up is *slightly* higher.
    0 to .3333 includes 3334 different values (don't forget to count 0). Your other ranges have 3333 values.

    You could probably do a quick if statement and ignore instances when the random number generator returns 0. Otherwise, it looks fine to me.
  4. Oct 30, 2006 #3
    Yea, i can also do this. Fix(10*rand(1,1)) which will pick a number out of (0,1,2,3,4,5,6,7,8,9)

    so excluding the 0 will give an equal distribution to 3 objects because it just tells the program to generate another number and doesn't really change anything. But, would the random pick still truly depend on rand(1,1)?

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook