2015년 6월 25일 목요일

MATLAB의 문자열(string)과 관련 함수

 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)
둘 중 긴 문자열에서 짧은 문자열이 시작되는 인덱스 반환


댓글 없음:

댓글 쓰기