[MATLAB] String형과 Char형 결합

2022. 2. 24. 10:50·프로그래밍 Programming/매트랩 MATLAB

매트랩에서는 다양한 자료형을 지원하고 있다. 그 중에서 string과 char에 대해서 이야기하려고 한다.

 

이렇게 string과 char를 특정해서 이야기하는 이유는 string과 char의 차이를 모르고 두 문자형의 데이터를 결합하려고 하면 문제가 생기기 때문이다.

 

보통 MATLAB Code를 돌리고 나서 나온 결과값을 .mat이든 .csv, .txt든 저장을 하고 싶을 수 있다.

이 때는 파일명을 특정해줘야하는데, 파일명은 문자이다. (데이터형의 문제가 아니라 진짜 그냥 문자이다.)

 

따라서 파일명을

filename = "hello.mat"
save(filename, 'var.mat') % 변수이름이 var일 때

이런 식으로 저장을 할 수 있다.

하지만 파일명이 지속적으로 바뀌어야 하는 경우나, 파일을 저장하고 싶은 폴더가 바뀔 수도 있기 때문에

 

filepath = ".\folder\"
filename = filepath + "hello.mat"
save(filename, 'var.mat')

이렇게 파일명을 다른 문자열끼리 조합해서 쓴다.

그러나 중간에 숫자가 들어가고 하면서 char형 배열과 string형이 꼬이게 되면 결합이 안되는 문제를 발견했다. 그래서 char형과 string을 구별해야겠다고 생각했다.

 

Char형의 경우에는 C를 배웠던 사람이라면 익숙할 것이다.

 c = 'Hello World'

다음과 같이 작은따옴표로 표시한 변수 c는 char형 배열(문자형 배열)이다.

C로 치면 char c[]같은 느낌이다.

 

그런데 MATLAB에서는 string형을 지원함으로써 문장을 string형 배열로 저장할 수 있다.

str = "hello world"

이렇게 큰따옴표를 쓰면 string형 배열이 된다.

 

주의할 점은 char형 배열은 배열 크기에 주의해야하며 string형이 훨씬 직관적이고 유연하게 쓸 수 있다.

 

위 그림을 보면 char형 배열은 배열의 크기를 고려해서 결합할 수 있는데 아래의 string형 배열은 쉽게 결합되는 것을 확인할 수 있다. 그럼 배열 크기를 맞춰서 더하면 어떻게 될까?

 

아마 hello의 ascii 코드 숫자와 world의 ascii 코드 숫자를 더한 것일 가능성이 높다

 

 

 

위 표를 보면 MATLAB이 알파벳 아스키 코드를 더한 것으로 알 수 있다.

 

char형은 C언어에서와 비슷하게 작동하는 것처럼 보인다.

따라서 파일명과 같이 유연한 문자열을 원한다면 string을 써야한다.

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming > 매트랩 MATLAB' 카테고리의 다른 글

[MATLAB] Symbolic 식에서 복잡한 숫자로 된 분수를 소수로 바꾸기  (0) 2022.04.07
[MATLAB] Figure 그릴 때 유용한 명령어 및 기능 모음  (0) 2022.02.24
[매트랩MATLAB] 기호 대입  (0) 2021.05.24
[매트랩MATLAB] 기호가 포함된 행렬 계산하기  (0) 2021.02.25
[매트랩 MATLAB] 데이터 구조 만들기  (0) 2021.01.29
'프로그래밍 Programming/매트랩 MATLAB' 카테고리의 다른 글
  • [MATLAB] Symbolic 식에서 복잡한 숫자로 된 분수를 소수로 바꾸기
  • [MATLAB] Figure 그릴 때 유용한 명령어 및 기능 모음
  • [매트랩MATLAB] 기호 대입
  • [매트랩MATLAB] 기호가 포함된 행렬 계산하기
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    논문작성법
    LaTeX
    JAX
    논문작성
    인공지능
    Linear algebra
    MATLAB
    딥러닝
    우분투
    옵시디언
    고체역학
    WOX
    Dear abby
    ChatGPT
    생산성
    Zotero
    pytorch
    텝스
    텝스공부
    Numerical Analysis
    Python
    obsidian
    Statics
    서버
    Julia
    matplotlib
    수치해석
    IEEE
    에러기록
    teps
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[MATLAB] String형과 Char형 결합
상단으로

티스토리툴바