Skip to main content
1-Visitor
August 20, 2012
Solved

How to use runif(1,1,7) in a program loop?

  • August 20, 2012
  • 1 reply
  • 2249 views

This works:

jx:=10 j:=0..jx k:=0..2 x[j,k:=ceil(rnd(7)) x= displays a 3by10 mateix of integers 1,2,..7

This does not work: x[j,k:=ceil(runif(1,1,7)) x= displays a 3by10 matrix of [1,1] in every cell.

ceil(runif(1,1,7)) works by itself but not as I'm using it (above).

Any suggestions will be appreciated.

Ed

Best answer by AndyWesterman

Hi Ed,

Rnd() returns a number so everything is OK,

Runif(,,,) returns a vector , so each element is saved as a 1x1 vector within the array.

In this case you can de-vectorise the number as:

ceil(runif(1,1,7)[0)

which seems to work for me

regards

Andy

1 reply

12-Amethyst
August 20, 2012

Hi Ed,

Rnd() returns a number so everything is OK,

Runif(,,,) returns a vector , so each element is saved as a 1x1 vector within the array.

In this case you can de-vectorise the number as:

ceil(runif(1,1,7)[0)

which seems to work for me

regards

Andy

usit1-VisitorAuthor
1-Visitor
August 20, 2012

Made my day! Works perfectly.

Thanks Westerman, hope to return the favor some day.

Ed