행렬의 원하는 부분을 치환하기 위해서는 치환하고자 하는 행렬의 원소에 값을 입력한다. 먼저 다음과 같이 행렬 A를 생성하자


>> A = [ 1 2 3 4 5;
6 7 8 9 10;
9 9 9 9 9;
0 0 0 0 0;
1 1 1 1 1];


이제 행렬 A에 대해서 다음 예제들과 같이 조작할 수 있다.


>> A(1,2) = 100 󰎠 % (1,2) 원소가 100이 된다.
A =
1 100 3 4 5
6 7 8 9 10
9 9 9 9 9
0 0 0 0 0
1 1 1 1 1
>> A(:,2) = [1 1 1 1 1]' 󰎠 % 2열의 원소들을 치환한다.
A =
1 1 3 4 5
6 1 8 9 10
9 1 9 9 9
0 1 0 0 0
1 1 1 1 1

>> A(1:4,2) = [2 2 2 2]' 󰎠 % 1행~4행의 2열 원소들을 2로 치환
A =
1 2 3 4 5
6 2 8 9 10
9 2 9 9 9
0 2 0 0 0
1 1 1 1 1

>> A(1,2) = 100 󰎠 % (1,2) 원소가 100이 된다.
A =
1 100 3 4 5
6 7 8 9 10
9 9 9 9 9
0 0 0 0 0
1 1 1 1 1
>> A(:,2) = [1 1 1 1 1]' 󰎠 % 2열의 원소들을 치환한다.
A =
1 1 3 4 5
6 1 8 9 10
9 1 9 9 9
0 1 0 0 0
1 1 1 1 1

>> A(1:4,2) = [2 2 2 2]' 󰎠 % 1행~4행의 2열 원소들을 2로 치환
A =
1 2 3 4 5
6 2 8 9 10
9 2 9 9 9
0 2 0 0 0
1 1 1 1 1


 아직 생성되지 않은 행렬의 특정한 요소에 값을 대입할 수 있다. 이때 지정되지 않은 원소는 모두 0 으로 출력된다. 예를 들어 아직 작업 공간에 D라는 변수가 없는 경우 다음과 같이 명령을 내리면,


>> D(3,3)=3 󰎠
D =
0 0 0
0 0 0
0 0 3


와 같이 D가 새로 생성되고 (3,3)자리에 3이 대입되며 지정되지 않은 다른 자리에는 0으로 채워진다. 만약 이 상태에서 다음과 같이 추가적으로 명령을 내리면


>> D(5,5)=5 󰎠
D =
0 0 0 0 0
0 0 0 0 0
0 0 3 0 0
0 0 0 0 0
0 0 0 0 5


지정되지 않은 위치의 요소들은 0으로 초기화되는 것을 알 수 있다.


 또 다른 예로서, C라는 행렬을 새로 생성시키는데, 두 번째 행을 [1 2 3]으로 하고 싶으면 다음과 같이 한다.


>> C(2,:)=[1 2 3] 󰎠
C =
0 0 0
1 2 3


이때 지정되지 않은 첫 번째 행의 값은 0으로 초기화됨을 알 수 있다. 만약 A라는 행렬이 3X3 크기의 행렬로 작업공간에 존재한다면


>> a=A(4,4) 󰎠
??? Index exceeds matrix dimensions.


는 보다시피 에러가 발생한다. 하지만 다음 명령어는 새로운 변수가 생성되는 것과 비슷한 규칙이 적용된다.


>> A(4,4)=10 󰎠
A =
1 2 3 0
4 5 6 0
7 8 9 0
0 0 0 10


즉, 지정된 위치를 만들어 값을 대입하고 값이 없는 위치에는 0을 대입한다.




Posted by 살레시오

댓글을 달아 주세요