[R] "ciclo for" in matrix construction ( matlab -> R )

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Thu Oct 5 05:51:24 CEST 2006


massimodisasha wrote:
> hi,
> i'm new to R
> i have a little script in matlab....
> now i'm porting it to R but i've some problem.
> how can i write in R language this
> matlab/octave code:
> 
> LX = L ;                     >>> L is a matrix
> ss = size(LX,1);
> E_N_2 = zeros(ss,2);
> 
> for i = 1:ss
> E_2 = E_0 + LX(i,1)*C(3)+LX(i,2)*C(4);      >>>> E_0 , C(3), c(4)   
> are costant
> N_2 = N_0 + LX(i,2)*C(3)-LX(i,1)*C(4);
> r=[ E_2,N_2];
> E_N_2(i,:)=r;
> end
> E_N_2
> 
> i'm try so :
> 
> library(matlab)
> LX <- L
> ss <- dim(LX)
> ss <- ss[1]
> E_N_2 <- zeros(ss,2)
> for(i in 1:ss)
> .....
> .....?
> 
> thanks for any help :-)
> Massimo
> 
> my mayor problem is to know how the "cicle for" works

Perhaps a more important problem is learning how to
use matrix algebra.  Loops are notoriously slow in R,
and worth avoiding in octave as well.

E_0 <- 12
N_0 <- 13
C3 <- 21
C4 <- 22
L <- matrix(c(1,2,3,4,5,6,7,8,9),ncol=3)

ss <- dim(L)[1]
LX <- L[1:ss,1:2]
C <- matrix(c(C3,C4,-C4,C3),ncol=2)
EN <- matrix(rep(c(E_0,N_0),ss),ncol=2,byrow=TRUE)
E_N_2 <- EN + LX %*% C
E_N_2


-- 
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k



More information about the R-help mailing list