전산통계학 1차 과제 - 행렬

코딩 공부/R-전산 통계학 2019. 11. 18. 08:42
반응형

1번) '전산통계1.pdf' 2~9chap 까지 exercise 풀기   <ㅡ 보고 따라서 하면 되므로, 따로 올리지 않을게요


2번) 'x=matrix(1:100,10)' 으로 설정하고, 'ㄷ,ㅁ,ㅂ 위치의 원소 = 0' 으로 바꾸는 함수 만들기

 

# ㄷ=0

x=matrix(1:100,10)
for(i in 1:nrow(x)){
  for(j in 1:ncol(x)){
    x[j,1]=0
    x[nrow(x),j]=0
    x[1,j]=0
  }
}
x


 # ㅁ=0

x=matrix(1:100,10)
for(i in 1:nrow(x)){
  for(j in 1:ncol(x)){
    x[j,1]=0
    x[nrow(x),j]=0
    x[1,j]=0
    x[j,ncol(x)]=0
  }
}
x



 # ㅂ=0

x=matrix(1:100,10)
for(i in 1:nrow(x)){
  for(j in 1:ncol(x)){
    x[j,1]=0
    x[nrow(x),j]=0
    x[{(nrow(x)/2)},j]=0
    x[j,ncol(x)]=0
  }
}
x


3번) x=matrix(1:121,11) 으로 설정하고, X와 Y를 다음 사진과 같은 모양으로 바꾸는 함수 만들기

# X

x=matrix(1:121,11)
for(i in 1:ncol(x)){
  for(j in 1:ncol(x)) {
    if(i==j){
      x[i,j]=2}
    else if(i+j==12){x[i,j]<-1}
  }
}
x[mean(1:nrow(x)),mean(1:ncol(x))]=0
x


# Y

x=matrix(1:121,11)
for(i in 1:ncol(x)){
  for(j in 1:ncol(x)) {
    if(i>=3 & i<=5){
      if(i==j){x[i,j]=3}
      if(i>=3 & i<=5) {
        if(i+j==12) {x[i,j]<-4}
      }
    }
    if(i>=6 & i<=8) {x[i,mean(1:ncol(x))]<-6}
  }
}
x


<과제 총평>

1번 : 노가다에요

 

2번 : ㄷ,ㅁ,ㅂ 은 직선 형태이므로, for 문을 사용할 의미가 안 보이는 듯 싶지만, 대각선 형태인 ㅅ,ㅈ 을 연습해 보는 것을 추천해요 

더욱 능숙해지고 싶으시다면 ㅎ ㅡ> 더더욱 능숙해지고 싶으시다면 좀더 행렬을 넓혀서 '부모'글자를 만들어보셔요 (18년 실제 문제)

 

3번 : X,Y 의 대각선은 의외로 규칙성 있어서 쉽게 하셨을 거에요

TAG