MATLAB 데이터 타입 완벽 가이드: 종류, 변환, 확인 방법
MATLAB은 타입 선언이나 차원 명령문이 필요하지 않습니다. MATLAB이 새로운 변수 이름을 만나면 변수를 생성하고 적절한 메모리 공간을 할당합니다.
변수가 이미 존재하면 MATLAB은 원래 내용을 새 내용으로 대체하고, 필요한 경우 새 저장 공간을 할당합니다.
예를 들어,
Total = 42
위 문은 'Total'이라는 1x1 행렬을 생성하고 그 안에 값 42를 저장합니다.
MATLAB에서 사용 가능한 데이터 타입
MATLAB은 15가지 기본 데이터 타입을 제공합니다. 모든 데이터 타입은 행렬 또는 배열 형태의 데이터를 저장합니다. 이 행렬 또는 배열의 크기는 최소 0x0이며, 어떤 크기의 행렬이나 배열로든 커질 수 있습니다.
다음 표는 MATLAB에서 가장 일반적으로 사용되는 데이터 타입을 보여줍니다.
| 번호 |
데이터 타입 및 설명 |
| 1 |
int8
8비트 부호 있는 정수 |
| 2 |
uint8
8비트 부호 없는 정수 |
| 3 |
int16
16비트 부호 있는 정수 |
| 4 |
uint16
16비트 부호 없는 정수 |
| 5 |
int32
32비트 부호 있는 정수 |
| 6 |
uint32
32비트 부호 없는 정수 |
| 7 |
int64
64비트 부호 있는 정수 |
| 8 |
uint64
64비트 부호 없는 정수 |
| 9 |
single
단정밀도 수치 데이터 |
| 10 |
double
배정밀도 수치 데이터 |
| 11 |
logical
1 또는 0의 논리값, 각각 true와 false를 나타냄 |
| 12 |
char
문자 데이터(문자열은 문자 벡터로 저장됨) |
| 13 |
cell array
인덱싱된 셀의 배열, 각 셀은 서로 다른 차원과 데이터 타입의 배열을 저장할 수 있음 |
| 14 |
structure
C 스타일 구조체, 각 구조체는 이름이 있는 필드를 가지며 서로 다른 차원과 데이터 타입의 배열을 저장할 수 있음 |
| 15 |
function handle
함수에 대한 포인터 |
| 16 |
user classes
사용자 정의 클래스에서 생성된 객체 |
| 17 |
java classes
Java 클래스에서 생성된 객체 |
예제
다음 코드로 스크립트 파일을 만드세요.
Live Demo
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
위 코드를 컴파일하고 실행하면 다음 결과가 나옵니다.
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
데이터 타입 변환
MATLAB은 한 데이터 타입에서 다른 데이터 타입으로 값을 변환하는 다양한 함수를 제공합니다. 다음 표는 데이터 타입 변환 함수를 보여줍니다.
| 함수 |
용도 |
| char |
문자 배열(문자열)로 변환 |
| int2str |
정수 데이터를 문자열로 변환 |
| mat2str |
행렬을 문자열로 변환 |
| num2str |
숫자를 문자열로 변환 |
| str2double |
문자열을 배정밀도 값으로 변환 |
| str2num |
문자열을 숫자로 변환 |
| native2unicode |
숫자 바이트를 유니코드 문자로 변환 |
| unicode2native |
유니코드 문자를 숫자 바이트로 변환 |
| base2dec |
N진수 문자열을 10진수 숫자로 변환 |
| bin2dec |
이진수 문자열을 10진수 숫자로 변환 |
| dec2base |
10진수를 N진수 문자열로 변환 |
| dec2bin |
10진수를 이진수 문자열로 변환 |
| dec2hex |
10진수를 16진수 문자열로 변환 |
| hex2dec |
16진수 문자열을 10진수 숫자로 변환 |
| hex2num |
16진수 문자열을 배정밀도 숫자로 변환 |
| num2hex |
single과 double을 IEEE 16진수 문자열로 변환 |
| cell2mat |
셀 배열을 숫자 배열로 변환 |
| cell2struct |
셀 배열을 구조체 배열로 변환 |
| cellstr |
문자 배열에서 문자열 셀 배열 생성 |
| mat2cell |
배열을 잠재적으로 다른 크기의 셀을 가진 셀 배열로 변환 |
| num2cell |
배열을 일관된 크기의 셀을 가진 셀 배열로 변환 |
| struct2cell |
구조체를 셀 배열로 변환 |
데이터 타입 확인
MATLAB은 변수의 데이터 타입을 식별하는 다양한 함수를 제공합니다.
다음 표는 변수의 데이터 타입을 결정하는 함수를 제공합니다.
| 함수 |
용도 |
| is |
상태 감지 |
| isa |
입력이 지정된 클래스의 객체인지 확인 |
| iscell |
입력이 셀 배열인지 확인 |
| iscellstr |
입력이 문자열 셀 배열인지 확인 |
| ischar |
항목이 문자 배열인지 확인 |
| isfield |
입력이 구조체 배열 필드인지 확인 |
| isfloat |
입력이 부동소수점 배열인지 확인 |
| ishghandle |
Handle Graphics 객체 핸들에 대해 true |
| isinteger |
입력이 정수 배열인지 확인 |
| isjava |
입력이 Java 객체인지 확인 |
| islogical |
입력이 논리 배열인지 확인 |
| isnumeric |
입력이 숫자 배열인지 확인 |
| isobject |
입력이 MATLAB 객체인지 확인 |
| isreal |
입력이 실수 배열인지 확인 |
| isscalar |
입력이 스칼라인지 확인 |
| isstr |
입력이 문자 배열인지 확인 |
| isstruct |
입력이 구조체 배열인지 확인 |
| isvector |
입력이 벡터인지 확인 |
| class |
객체의 클래스 결정 |
| validateattributes |
배열 유효성 검사 |
| whos |
작업 공간의 변수를 크기와 타입과 함께 나열 |
예제
다음 코드로 스크립트 파일을 만드세요.
Live Demo
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
파일을 실행하면 다음 결과가 나옵니다.
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0