MATLAB에서 행렬의 원소로 문자열을 사용하는 것이 가능하다. 문자열은 작은 따옴표나 큰따옴표로 묶는다.


>> A=['hi']
A = hi
>> B="there"
B = there


두 번째 예를 보면 문자열은 그 자체로 행벡터임을 알 수 있다.. 벡터의 각 요소는 하나의 문자인 것이다. 따라서 행렬의 인덱싱도 가능하다.


>> size(B)
ans =
  1   5

>> B(3)
ans = e

>> B(1)="T"
B = There


따라서 다음과 같이 두 행렬을 한 행렬로 표현함으로써 문자열의 합성도 가능하다.


>> C=[A B]
C = hiThere


문자열 행렬도 생성 가능한데 문자열 자체가 행벡터이므로 한 행에 하나의 문자열을 지정해 주면 된다.


>> D=['hi';'there']
D =
hi
there

>> size(D)
ans =
  2   5


위의 예에서 행렬 D는 첫 번째 행의 크기는 2(문자)이고 두번째 행의 크기는 5(문자)인데 행렬이 구성되었다. 이경우 빈 곳은 공백문자로 채워진다.


 문자열 관련 함수들은 다음과 같다.


[표 1] 문자열 관련 함수들

함수

기능

strcat(s1, s2, …)

strvcat(s1,s2,...)

문자열들을 하나의 행벡터로 합친다.

문자열들을 한 행렬로 합친다.(각 문자열을 별도의 행으로 지정)

char(x)

숫자(아스키코드) 행렬로 부터 문자열을 생성한다.

ischar(x)

x가 문자열이면 논리1(true)반

num2str(x)

숫자를 문자열로 바꾼다.

sprintf(FORMAT, A,B,...)

C 언어의 printf() 와 같은 기능을 수해하여 문자열 생성

lower(s)

upper(s)

문자열을 소문자로 변환

문자열을 대문자로 변환

strcmp(s1,s2)

s1과 s2가 같다면 논리1(true)반환, 그렇지 않다면 논리0(flase)반환

findstr(s1,s2)

둘 중 긴 문자열에서 짧은 문자열이 시작되는 인덱스 반환



Posted by 살레시오
,