# [Rd] Matrix with random number

Kjell Konis kjell.konis at epfl.ch
Wed Jul 1 10:30:22 CEST 2009

```Hi Fabio,

Your function myrbeta returns void so assigning the output isn't going
to work.  Instead you need to call it like a FORTRAN subroutine.
Also, I added arguments for the parameters of the beta and moved the
fseedi and fseedo calls outside of the loop.

This is a pretty basic FORTRAN programming question and there are lots

subroutine mat(x,l,c,pa,pb)
integer l,c
double precision x(l,c), a
integer i,j
call fseedi()
do j = 1, c
do i = 1, l
call myrbeta(x(i,j),pa,pb)
enddo
enddo
call fseedo()
end

In R call it like this:

storage.mode(x) <- "double"
.Fortran("mat", x = x, as.integer(l), as.integer(c), as.double(1),
as.double(2))

Cheers,
Kjell

On 30 juin 09, at 20:02, Fabio Mathias wrote:

> Thanks Mr. Barry Rowlingson
>
> However, the matrix appears to zeros!
>
> Notice the code below! Please!
>
> Code in fortran
>
>     subroutine mat(x,l,c,a)
>     integer l,c
>     double precision x(l,c), a
>     integer i,j
>      do j = 1, c
>        do i = 1, l
>         call fseedi()
>          x(i,j) = myrbeta(a,1,2)
>         call fseedo()
>            enddo
>           enddo
>     end
>
> In R:
>
> x <- matrix(0,5,6)
> l <- nrow(x)
> c <-
> ncol(x)
> a <- 0
>
> ..Fortran("mat", x = x, l, c, as.double(a))
>
> Results:
>
> \$x
>      [,1] [,2] [,3] [,4] [,5] [,6]
> [1,]    0    0    0    0    0    0
> [2,]    0    0    0    0    0    0
> [3,]    0    0    0    0    0    0
> [4,]    0    0    0    0    0    0
> [5,]    0    0    0    0    0    0
>
> []
>  5
>
> []
>  6
>
> []
>  1
>
>
> Thanks!!!
>
>
>              Fábio Mathias Corrêa                       UFLA
>
>
>
>
>
> ____________________________________________________________________________________
> [[elided Yahoo spam]]
>
> 	[[alternative HTML version deleted]]
>
> <ATT00001.txt>

```