獨斷論

R과 matlab의 기본 명령어 비교 모음집 본문

과학과 기술/R 통계

R과 matlab의 기본 명령어 비교 모음집

부르칸 2015. 2. 28. 20:21

덧셈 뺄셈 등등

 

R

MATLAB

Description

a <- 1 a = 1 변수에 값을 입력
a + b a + b 덧셈
a - b a - b 뺄셈
a * b a * b 곱셈
a / b a / b 나눗셈
a ^ b a .^ b 지수, 제곱
a %% b rem(a,b) 나머지
a %/% b   정수 나눗셈
factorial(a) factorial(a) Factorial

 

관계 연산자

R               MATLAB         

Description

a == b a == b 같다
a < b a < b 작다
a > b a > b 크다
a <= b a <= b 작거나 같다l
a >= b a >= b 크거나 같다l
a != b a ~= b 같지 않다

 

 

루트와 로그

R             MATLAB       

Description

sqrt(a) sqrt(a) 루트, 제곱근
log(a) log(a) 자연로그
log10(a) log10(a) 상용로그
log2(a) log2(a) 밑이 2인 로그
exp(a) exp(a) 자연대수 e의 a제곱 또는 a승

 

Round off

R              

MATLAB       

Description

round(a) round(a) Round
ceil(a) ceil(a) Round up
floor(a) floor(a) Round down
  fix(a) Round towards zero

 

많이 사용하는 상수

R              MATLAB         Description
pi pi 파이 3.141592
exp(1) exp(1) 자연대수 e = 2.71828

 

 

복소수

R                          

MATLAB          

Description

1i i 허수 단위
z <- 3+4i z = 3+4i 3+4i를 대입
abs(3+4i) or Mod(3+4i) abs(z) 복소수의 절대값
Re(3+4i) real(z) 복소수의 실수부분만
Im(3+4i) imag(z) 복소수의 허수부분만
Arg(3+4i) arg(z) Argument
Conj(3+4i) conj(z) Complex conjugate

 

 

난수발생

R                            

MATLAB                 

Description

runif(10) rand(1,10) Uniform distribution
runif(10, min=2, max=7) 2+5*rand(1,10) 2와 7 사이의 uniform distribution을 갖는 숫자
matrix(runif(36),6) rand(6) 6x6의 행렬에 uniform분포의 숫자들
rnorm(10) randn(1,10) 정규분포 숫자들

 

벡터

R                          

MATLAB           

Description

a <- c(2,3,4,5) a=[2 3 4 5]; 벡터 입력

 

Sequences

R                            

MATLAB                 

Description

seq(10) or 1:10 1:10 1,2,3, ... ,10
seq(0,length=10) 0:9 0.0,1.0,2.0, ... ,9.0
seq(1,10,by=3) 1:3:10 1,4,7,10
seq(10,1) or 10:1 10:-1:1 10,9,8, ... ,1
seq(from=10,to=1,by=-3) 10:-3:1 10,7,4,1
seq(1,10,length=7) linspace(1,10,7) 1에서 10까지 같은 간격으로 7개의 숫자를 발생
rev(a) reverse(a) 순서를 뒤집음
  a(:) = 3 모든 값을 3으로 만듬

 

벡터 합침

R               

MATLAB           

Description

c(a,a) [a a] 두 벡터를 합쳐서 하나로 만듬
c(1:4,a) [1:4 a]  

 

 

숫자반복으로 벡터를 만듬

R                    

MATLAB       

Description

rep(a,times=2) [a a] 1 2 3, 1 2 3
rep(a,each=3)   1 1 1, 2 2 2, 3 3 3
rep(a,a)   1, 2 2, 3 3 3

 

 

벡터의 일부를 제거

R                     

MATLAB          

Description

a[-1] a(2:end) 첫번째 원소를 제거
a[-10] a([1:9]) 10번째 원소를 제거
a[-seq(1,50,3)]   1,4,7, ...번째 들을 제거
  a(end) 마지막
  a(end-1:end) 마지막 2개

벡터 곱셈

R            

MATLAB            

Description

a*a a.*a 두 벡터의 원소끼리 곱함
  dot(u,v) Vector dot product

 

 

행렬을 만들거나 모양을 바꿈

R                                 

MATLAB                   

Description

matrix(1:6,nrow=3,byrow=TRUE) reshape(1:6,3,2)'; 행렬로 만듬 (행방향으로)
matrix(1:6,nrow=2)
array(1:6,c(2,3))
reshape(1:6,2,3);

행렬로 만듬 (열방향으로)

as.vector(t(a)) a'(:) 벡터로 만듬(행방향)
as.vector(a) a(:) 벡터로 만듬 (열방향)

 

 

행렬의 참조 (인덱스)

R                                  

MATLAB                    

Description

a <- rbind(c(11, 12, 13, 14),
c(21, 22, 23, 24),
c(31, 32, 33, 34))
a = [ 11 12 13 14 ...
21 22 23 24 ...
31 32 33 34 ]
우선 행렬에 값을 넣고



a[2,3] a(2,3) 2행 3열의 원소값
a[1,] a(1,:) 첫번째 행
a[,1] a(:,1) 첫번째 열
a[-1,] a(2:end,:) 첫번째 행을 제외
a[-2,-3]   2행과 3열을 제외
a[,-2] a(:,[1 3 4]) 2열 제외

 

 

역행렬 eigen value, SVD 등등

R                        

MATLAB                   

Description

t(a) a' Transpose
  a.' or transpose(a) Non-conjugate transpose
det(a) det(a) Determinant
solve(a) inv(a) Inverse
ginv(a) pinv(a) Pseudo-inverse
  norm(a) Norms
eigen(a)$values eig(a) Eigenvalues
svd(a)$d svd(a) Singular values
  chol(a) Cholesky factorization
eigen(a)$vectors [v,l] = eig(a) Eigenvectors
rank(a) rank(a) Rank

 

행렬의 차원 크기 등등

R                    

MATLAB                  

Description

dim(a) size(a) Matrix dimensions
ncol(a) size(a,2) or length(a) 열의 갯수
prod(dim(a)) length(a(:)) 원소의 갯수
  ndims(a) 차원

 

 

행렬의 곱셈 등등

R                              

MATLAB      

Description

a * b a .* b 원소끼리 곱함
a %*% b a * b 행렬의 곱셈
outer(a,b) or a %o% b   Outer product
crossprod(a,b) or t(a) %*% b   Cross product
kronecker(a,b) kron(a,b) Kronecker product
  a / b Matrix division a에 b의 역행렬을 곱함
solve(a,b) a \ b b의 역행렬에 a를 곱함. 방정식 풀기

 

 

데이터 읽어 불러들이기

R                                              

MATLAB                      

Description

f <- read.table("data.txt") f = load('data.txt') 텍스트 파일 불러오기
f <- read.table(file="data.csv", sep=",") x = dlmread('data.csv', ',') 쉼표로 분리된 텍스트 파일 불러오기
write(f,file="data.txt") save -ascii data.txt f 파일에 쓰기

 

 

기본 그래프 그리기

R                               

MATLAB                 

Description

plot(a, type="l") plot(a)  
plot(x[,1],x[,2]) plot(x(:,1),x(:,2),'o') 2차원 scatter
plot(x1,y1)
matplot(x2,y2,add=T)

plot(x1,y1)
hold on
plot(x2,y2)
그래프 터하기


  subplot(211) subplots
plot(x,y,type="b",col="red") plot(x,y,'ro-') symbols
과 색깔

 

 

그래프의 축과 제목 등

R                                         

MATLAB               

Description

grid() grid on grid 넣기
plot(x,y, xlim=c(0,10), ylim=c(0,5)) axis([ 0 10 0 5 ]) 축 크기
plot(1:10, main="title",
xlab="x-axis", ylab="y-axis")

title('title')
xlabel('x-axis')
ylabel('y-axis')
축의  labels과 제목


 

 

평균 표준편차 분산

R

              

MATLAB     

Description

apply(a,2,mean) mean(a) 평균
apply(a,2,median) median(a) Median
apply(a,2,sd) std(a) 표준편차
apply(a,2,var) var(a) 분산
cor(x,y) corr(x,y) Correlation coefficient
cov(x,y) cov(x,y) Covariance

 

 

Comments