이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
배열 클래스 확인하기
클래스 이름 쿼리하기
배열의 클래스를 확인하려면 class
함수를 사용합니다.
a = [2,5,7,11]; class(a)
ans = double
str = 'Character array';
class(str)
ans = char
배열 클래스 테스트하기
isa
함수를 사용하면 특정 클래스나 숫자형 클래스(numeric
, float
, integer
)의 범주를 테스트할 수 있습니다.
a = [2,5,7,11];
isa(a,'double')
ans = 1
부동소수점 값(단정밀도 값 및 배정밀도 값):
isa(a,'float')
ans = 1
숫자형 값(부동소수점 값 및 정수 값):
isa(a,'numeric')
ans = 1
isa는 서브클래스에 대해 True를 반환함
isa
는 지정된 클래스에서 파생된 클래스에 대해 true를 반환합니다. 예를 들어, SubInt
클래스가 내장 데이터형 int16
에서 파생된다고 가정하겠습니다.
classdef SubInt < int16 methods function obj = SubInt(data) if nargin == 0 data = 0; end obj = obj@int16(data); end end end
정의에 따르면 SubInt
클래스의 인스턴스는 int16
형 클래스의 인스턴스이기도 합니다.
aInt = SubInt;
isa(aInt,'int16')
ans = 1
integer
범주를 사용해도 true
를 반환합니다.
isa(aInt,'integer')
ans = 1
특정 유형 테스트하기
class
함수는 객체의 최하위 파생 클래스 이름을 반환합니다.
class(aInt)
ans = SubInt
class
함수와 함께 strcmp
함수를 사용하여 객체의 클래스 값을 확인합니다.
a = int16(7);
strcmp(class(a),'int16')
ans = 1
class
함수는 클래스 이름을 char
형 벡터로 반환하므로 상속은 strcmp
가 수행하는 비교 결과에 영향을 주지 않습니다.
aInt = SubInt;
strcmp(class(aInt),'int16')
ans = 0
최하위 파생 클래스 테스트하기
다음과 같은 입력값이 필요한 함수를 정의하는 경우를 살펴보겠습니다.
MATLAB® 내장 데이터형
MATLAB 내장 데이터형의 서브클래스가 아님
입력 인수에서 내장 데이터형의 서브클래스를 제외하려면 다음 기법을 사용하십시오.
입력 인수를 테스트합니다.
if strcmp(class(inputArg),'single') % Call function else inputArg = single(inputArg); end
유형 범주 테스트하기
double
형 또는 single
형이어야 하는 두 개의 숫자형 입력값이 필요한 MEX 함수 myMexFcn
을 생성한다고 가정하겠습니다.
outArray = myMexFcn(a,b)
문자형 배열(double
과 single
)을 포함하는 셀형 배열을 정의합니다.
floatTypes = {'double','single'};
% Test for proper types if any(strcmp(class(a),floatTypes)) && ... any(strcmp(class(b),floatTypes)) outArray = myMexFcn(a,b); else % Try to convert inputs to avoid error ... end
내장 데이터형에 대한 다른 테스트
isobject
를 사용하여 내장 데이터형의 서브클래스에서 내장 데이터형을 구분합니다. isobject
함수는 내장 데이터형의 인스턴스에 대해 false
를 반환합니다.
% Create a int16 array
a = int16([2,5,7,11]);
isobject(a)
ans = 0
배열이 내장 정수형 중 하나인지 확인합니다.
if isa(a,'integer') && ~isobject(a) % a is a built-in integer type ... end