Thanks, we're almost there. The 3rd statement needs to
satisfy fi_2[r,c]<-fi_2[c,r] where r<c.



On Tue, Mar 15, 2011 at 10:06 PM, Henrique Dallazuanna <wwwhsd@gmail.com>wrote:

> Try this:
>
> fi_2 <- diag(1, i)
> fi_2[lower.tri(fi_2)] <- 1 - runif(sum(lower.tri(fi_2))) ^ .5
> fi_2[upper.tri(fi_2)] <- fi_2[lower.tri(fi_2)]
>
> On Tue, Mar 15, 2011 at 7:51 PM, Brian Pellerin <
> brianpatrickpellerin@gmail.com> wrote:
>
>> Hello R users,
>>
>> I would like to reduce the number of for loops in my code. I build these
>> matrices (50000 times). The main diagonal are 1s and the two sides along
>> the
>> main diagonal mirror each other as follows:
>>
>>
>> i<-5
>> fi<-matrix(0,nrow=i,ncol=i)#floral inhibition matrix for(r in 1:i){ for(c
>> in
>> 1:i){ if(r==c){ fi[r,c]<-1 }else if(r<c){ fi[r,c]<-1-runif(1)^.5 }else{
>> fi[r,c]<-fi[c,r] } } }
>> fi
>>
>> Any thoughts?
>>
>> Sincerely,
>> Brian
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
>
> --
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>

	[[alternative HTML version deleted]]

