이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
validateattributes
배열의 유효성 검사
구문
설명
validateattributes(
는 배열 A
,classes
,attributes
)A
가 지정된 클래스(또는 그 서브클래스) 중 적어도 하나에 속하고 지정된 특성을 모두 가지는지 검사합니다. A
가 조건을 충족하지 않으면 MATLAB®에서 오류가 발생하고 서식이 지정된 오류 메시지가 표시됩니다. 그렇지 않으면, validateattributes
는 출력값을 표시하지 않고 완료됩니다.
validateattributes(
는 함수 인수 목록에 있는 입력값의 위치를 생성된 오류 메시지의 일부로 포함합니다.A
,classes
,attributes
,argIndex
)
validateattributes(
은 지정된 함수 이름을 생성된 오류 ID에 포함합니다.A
,classes
,attributes
,funcName
)
예제
배열 크기의 유효성 검사하기
classes = {'numeric'}; attributes = {'size',[4,6,2]}; A = rand(3,5,2); validateattributes(A,classes,attributes)
Expected input to be of size 4x6x2 when it is actually size 3x5x2.
A
가 지정된 특성과 일치하지 않았으므로 MATLAB에서 오류 메시지가 표시됩니다.
배열 단조성의 유효성 검사하기
배열이 증가하는지 또는 감소하지 않는지 확인합니다.
A = [1 5 8 2; 9 6 9 4] validateattributes(A, {'double'},{'nondecreasing'}) validateattributes(A, {'double'},{'increasing'})
A = 1 5 8 2 9 6 9 4
A
는 증가하고 있고 감소하지 않으므로 validateattributes
의 어느 한쪽의 특성 검사에서도 오류가 발생하지 않습니다.
A(2,3)
을 A(1,3)
과 동일하게 설정하면 열이 더 이상 순증가(Strictly Increasing)하지 않으므로, validateattributes
에서 오류가 발생합니다.
A(2,3) = 8 validateattributes(A, {'double'},{'increasing'})
A = 1 5 8 2 9 6 8 4 Expected input to be strictly increasing.
그러나 각 열의 요소가 이전 열 요소보다 크거나 같으므로 열은 감소하지 않은 상태로 유지됩니다. 다음 코드에서 오류가 발생하지 않습니다.
validateattributes(A, {'double'},{'nondecreasing'})
복소수 특성 확인하기
a
가 함수에 대한 두 번째 입력 인수인 것으로 가정하여, 이 값이 음이 아닌지 확인합니다.
a = complex(1,1); validateattributes(a,{'numeric'},{'nonnegative'},2)
Expected input number 2 to be nonnegative.
복소수는 복소 평면에 잘 정의된 정렬이 없으므로 validateattributes
는 복소수를 양수 또는 음수로 인식하지 못합니다.
배열 값이 지정된 범위 내에 있는지 확인하기
배열의 값이 0에서 10 사이의 8비트 정수인지 확인합니다.
다음 코드는 Rankings
라는 함수에서 발생하는 것으로 가정합니다.
classes = {'uint8','int8'}; attributes = {'>',0,'<',10}; funcName = 'Rankings'; A = int8(magic(4)); validateattributes(A,classes,attributes,funcName)
Error using Rankings Expected input to be an array with all of the values < 10.
inputParser
를 사용하여 함수 입력 파라미터의 유효성 검사하기
inputParser
를 사용하여 입력 파라미터를 검사하는 사용자 지정 함수를 만들고, validateattributes
를 addRequired
메서드와 addOptional
메서드에 대한 유효성 검사 함수로 사용합니다.
함수를 정의합니다.
function a = findArea(shape,dim1,varargin) p = inputParser; charchk = {'char'}; numchk = {'numeric'}; nempty = {'nonempty'}; addRequired(p,'shape',@(x)validateattributes(x,charchk,nempty)) addRequired(p,'dim1',@(x)validateattributes(x,numchk,nempty)) addOptional(p,'dim2',1,@(x)validateattributes(x,numchk,nempty)) parse(p,shape,dim1,varargin{:}) switch shape case 'circle' a = pi * dim1.^2; case 'rectangle' a = dim1 .* p.Results.dim2; end end
숫자형이 아닌 세 번째 입력값을 사용하여 함수를 호출합니다.
myarea = findArea('rectangle',3,'x')
Error using findArea (line 10) The value of 'dim2' is invalid. Expected input to be one of these types: double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64
함수 인수의 유효성 검사하기
함수의 입력값을 검사하고, 생성된 오류에 입력값 이름과 위치에 대한 정보를 포함합니다.
함수를 정의합니다.
function v = findVolume(shape,ht,wd,ln) validateattributes(shape,{'char'},{'nonempty'},mfilename,'Shape',1) validateattributes(ht,{'numeric'},{'nonempty'},mfilename,'Height',2) validateattributes(wd,{'numeric'},{'nonempty'},mfilename,'Width',3) validateattributes(ln,{'numeric'},{'nonempty'},mfilename,'Length',4)
shape
입력 인수를 사용하지 않고 함수를 호출합니다.
vol = findVolume(10,7,4)
Error using findVolume Expected input number 1, Shape, to be one of these types: char Instead its type was double. Error in findVolume (line 2) validateattributes(shape,{'char'},{'nonempty'},mfilename,'Shape',1)
함수 이름은 오류 ID의 일부가 됩니다.
MException.last.identifier
ans = MATLAB:findVolume:invalidType
입력 인수
A
— 입력값
임의의 배열 유형
입력값으로, 임의 유형의 배열로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| cell
| function_handle
복소수 지원 여부: 예
classes
— 유효한 데이터형
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
유효한 데이터형으로, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다. classes
의 각 요소는 다음을 포함하여 내장 클래스 또는 사용자 지정 클래스의 이름일 수 있습니다.
'half' | 반정밀도 숫자 |
'single' | 단정밀도 숫자 |
'double' | 배정밀도 숫자 |
'int8' | 부호 있는 8비트 정수 |
'int16' | 부호 있는 16비트 정수 |
'int32' | 부호 있는 32비트 정수 |
'int64' | 부호 있는 64비트 정수 |
'uint8' | 부호 없는 8비트 정수 |
'uint16' | 부호 없는 16비트 정수 |
'uint32' | 부호 없는 32비트 정수 |
'uint64' | 부호 없는 64비트 정수 |
'logical' | 논리값 1 (true ) 또는 0 (false ) |
'char' | 문자형 |
'string' | string형 배열 |
'struct' | 구조체형 배열 |
'cell' | 셀형 배열 |
'table' | 테이블 |
'timetable' | 타임테이블 |
'function_handle' | 함수 핸들 |
'numeric' | isa(A,'numeric') 함수가 true를 반환하는 모든 데이터형(int8 형, int16 형, int32 형, int64 형, uint8 형, uint16 형, uint32 형, uint64 형, single 형 또는 double 형 포함) |
'< | 기타 클래스 이름 |
데이터형: cell
| string
attributes
— 유효한 특성
셀형 배열 | string형 배열
유효한 특성으로, 셀형 배열이나 string형 배열로 지정됩니다.
일부 특성에는 A
의 요소의 크기나 개수를 지정하는 숫자형 특성 값이 필요합니다. 이러한 특성에서 숫자형 값 또는 벡터는 셀형 배열에서 특성 이름의 바로 뒤에 와야 합니다. string형 배열을 사용해서는 attributes
에 숫자형 값을 표현할 수 없습니다.
다음 특성은 배열 A
의 크기와 형태를 설명합니다.
'2d' | 2차원 배열(스칼라, 벡터, 행렬, 빈 배열 포함) |
'3d' | 3차원 이하인 배열 |
'column' | 열 벡터, N ×1 |
'row' | 행 벡터, 1×N |
'scalar' | 스칼라 값, 1×1 |
'scalartext' | 0개 문자가 있는 입력값을 포함하여 string형 스칼라 또는 문자형 벡터 |
'vector' | 행 벡터나 열 벡터, 또는 스칼라 값 |
'size', [d1,...,dN] | 차원이 d1 ×...×dN 인 배열. 특정 차원의 확인을 건너뛰려면 [3,4,NaN,2] 같이 해당 차원에 NaN 을 지정하십시오. |
'numel', N | N 개의 요소가 있는 배열 |
'ncols', N | N 개의 열이 있는 배열 |
'nrows', N | N 개의 행이 있는 배열 |
'ndims', N | N 차원 배열 |
'square' | 정사각 행렬. 즉, 행과 열의 개수가 동일한 2차원 배열 |
'diag' | 대각 행렬 |
'nonempty' | 0인 차원이 없음 |
'nonsparse' | 배열이 희소가 아님 |
다음 특성은 A
의 값에 대해 유효한 범위를 지정합니다.
'>', N | N 보다 큰 모든 값 |
'>=', N | N 보다 크거나 같은 모든 값 |
'<', N | N 보다 작은 모든 값 |
'<=', N | N 보다 작거나 같은 모든 값 |
'finite' | 모든 값이 유한함 |
'nonnan' | NaN(Not-a-Number) 값이 없음 |
다음 특성은 숫자형 배열 또는 논리형 배열 A
의 값의 유형을 확인합니다.
'binary' | 1과 0으로 구성된 배열 |
'even' | 짝수로 구성된 배열(0 포함) |
'odd' | 홀수로 구성된 배열 |
'integer' | 정수 값으로 구성된 배열 |
'real' | 실수 값으로 구성된 배열 |
'nonnegative' | 0보다 작은 요소가 없음 |
'nonzero' | 0과 같은 요소가 없음 |
'positive' | 0보다 작거나 같은 요소가 없음 |
'decreasing' | 열의 각 요소가 이전 요소보다 작으며 NaN 인 요소가 없습니다. |
'increasing' | 열의 각 요소가 이전 요소보다 크며 NaN 인 요소가 없습니다. |
'nondecreasing' | 열의 각 요소가 이전 요소보다 크거나 같으며 NaN 인 요소가 없습니다. |
'nonincreasing' | 열의 각 요소가 이전 요소보다 작거나 같으며 NaN 인 요소가 없습니다. |
데이터형: cell
funcName
— 유효성 검사를 위한 함수의 이름
문자형 벡터 | string형 스칼라
유효성 검사를 위한 함수의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 빈 문자형 벡터 ''
이나 <missing>
문자열을 지정하면 validateattributes
함수가 funcName
입력값을 무시합니다.
데이터형: char
| string
varName
— 입력 변수의 이름
문자형 벡터 | string형 스칼라
입력 변수의 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 빈 문자형 벡터 ''
이나 <missing>
문자열을 지정하면 validateattributes
함수가 varName
입력값을 무시합니다.
데이터형: char
| string
argIndex
— 입력 인수의 위치
양의 정수
입력 인수의 위치로, 양의 정수로 지정됩니다.
데이터형: double
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
일부 오류 메시지는 MATLAB 오류 메시지를 간단히 나타낸 것입니다.
classes
,funcName
,varName
,argIndex
인수는 상수여야 합니다.특성 이름은 상수여야 합니다.
생성된 코드에서, 오류 메시지의 수치 형식은 MATLAB의 형식과 다를 수 있습니다. 예를 들어, 다음은 MATLAB의 오류 메시지입니다.
Expected input to be an array with all of the values > 3.
다음은 생성된 코드의 오류 메시지입니다.
Expected input to be an array with all of the values > 3.000000000000000e+00.
scalar
및real
특성은 반정밀도 데이터형에 대해 지원됩니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
C/C++ 코드 생성 섹션의 사용법 관련 참고 및 제한 사항을 참조하십시오. GPU 코드 생성에도 동일한 제한 사항이 적용됩니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2007b에 개발됨
참고 항목
validatestring
| isa
| isnumeric
| inputParser
| arguments
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)