이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
rowfun
테이블 또는 타임테이블 행에 함수 적용
설명
는 함수 B
= rowfun(func
,A
,Name,Value
)func
을 하나 이상의 Name,Value
쌍 인수로 추가 옵션을 지정하여 테이블 A
의 각 행에 적용합니다.
예를 들어, 함수 func
으로 전달할 변수와 func
을 호출하는 방식을 지정할 수 있습니다.
예제
단일 출력값을 갖는 함수를 행에 적용하기
함수 hypot
을 5×2 테이블 A
의 각 행에 적용하여 변수 x
와 변수 y
간의 최단 거리를 구합니다.
숫자형 데이터로 구성된 두 개의 변수를 갖는 테이블 A
를 만듭니다.
rng('default')
x = randi(10,[5,1]);
y = randi(10,[5,1]);
A = table(x,y)
A=5×2 table
x y
__ __
9 1
10 3
2 6
10 10
7 10
함수 hypot
을 A
의 각 행에 적용합니다. 함수 hypot
은 두 개의 입력값을 받아 하나의 출력값을 반환합니다.
B = rowfun(@hypot,A,'OutputVariableNames','z')
B=5×1 table
z
______
9.0554
10.44
6.3246
14.142
12.207
B
는 테이블입니다.
함수 출력값 B
를 입력 테이블 A
에 결합하십시오.
[A B]
ans=5×3 table
x y z
__ __ ______
9 1 9.0554
10 3 10.44
2 6 6.3246
10 10 14.142
7 10 12.207
여러 개의 출력값을 갖는 함수를 행에 적용하기
기하 브라운 운동(Brownian motion) 모델을 정의하고 파라미터 범위에 적용합니다.
다음 코드를 포함하는 gbmSim.m
이라는 파일에 함수를 생성합니다.
% Copyright 2015 The MathWorks, Inc. function [m,mtrue,s,strue] = gbmSim(mu,sigma) % Discrete approximation to geometric Brownian motion % % [m,mtrue,s,strue] = gbmSim(mu,sigma) computes the % simulated mean, true mean, simulated standard deviation, % and true standard deviation based on the parameters mu and sigma. numReplicates = 1000; numSteps = 100; y0 = 1; t1 = 1; dt = t1 / numSteps; y1 = y0*prod(1 + mu*dt + sigma*sqrt(dt)*randn(numSteps,numReplicates)); m = mean(y1); s = std(y1); % Theoretical values mtrue = y0 * exp(mu*t1); strue = mtrue * sqrt(exp(sigma^2*t1) - 1); end
gbmSim
은 두 개의 입력값 mu
와 sigma
를 받고, 네 개의 출력값 m
, mtrue
, s
, strue
를 반환합니다.
브라운 운동 모델에 입력할 파라미터를 포함하는 테이블 params
를 정의합니다.
mu = [-.5; -.25; 0; .25; .5]; sigma = [.1; .2; .3; .2; .1]; params = table(mu,sigma)
params = 5x2 table mu sigma _____ _____ -0.5 0.1 -0.25 0.2 0 0.3 0.25 0.2 0.5 0.1
함수 gbmSim
을 테이블 params
의 행에 적용합니다.
stats = rowfun(@gbmSim,params,... 'OutputVariableNames',... {'simulatedMean' 'trueMean' 'simulatedStd' 'trueStd'})
stats = 5x4 table simulatedMean trueMean simulatedStd trueStd _____________ ________ ____________ ________ 0.60501 0.60653 0.05808 0.060805 0.77916 0.7788 0.161 0.15733 1.0024 1 0.3048 0.30688 1.2795 1.284 0.25851 0.25939 1.6498 1.6487 0.16285 0.16529
'OutputVariableNames'
이름-값 쌍의 인수로 지정된 네 개의 변수 이름은 rowfun
이 gbmSim
에서 네 개의 출력값을 얻어야 함을 나타냅니다. gbmSim
에서 더 적은 수의 출력값을 반환하도록 하려면 더 적은 수의 출력 변수 이름을 지정하십시오.
함수 출력값 stats
를 입력값 params
에 결합하십시오.
[params stats]
ans = 5x6 table mu sigma simulatedMean trueMean simulatedStd trueStd _____ _____ _____________ ________ ____________ ________ -0.5 0.1 0.60501 0.60653 0.05808 0.060805 -0.25 0.2 0.77916 0.7788 0.161 0.15733 0 0.3 1.0024 1 0.3048 0.30688 0.25 0.2 1.2795 1.284 0.25851 0.25939 0.5 0.1 1.6498 1.6487 0.16285 0.16529
함수를 행 그룹에 적용하기
테이블 A
를 만듭니다. 여기서, g
는 그룹화 변수입니다.
rng('default')
g = randi(3,[15,1]);
x = rand([15,1]);
y = rand([15,1]);
A = table(g,x,y)
A=15×3 table
g x y
_ ________ ________
3 0.14189 0.70605
3 0.42176 0.031833
1 0.91574 0.27692
3 0.79221 0.046171
2 0.95949 0.097132
1 0.65574 0.82346
1 0.035712 0.69483
2 0.84913 0.3171
3 0.93399 0.95022
3 0.67874 0.034446
1 0.75774 0.43874
3 0.74313 0.38156
3 0.39223 0.76552
2 0.65548 0.7952
3 0.17119 0.18687
익명 함수 func
를 정의하여 x
와 y
간의 평균 차이를 계산합니다.
func = @(x,y) mean(x-y);
그룹화 변수 g
에서 정의한 그룹 1
, 2
, 3
의 변수 간 평균 차이를 구합니다.
B = rowfun(func,A,... 'GroupingVariable','g',... 'OutputVariableName','MeanDiff')
B=3×3 table
g GroupCount MeanDiff
_ __________ ________
1 4 0.032744
2 3 0.41822
3 8 0.14656
변수 GroupCount
는 각 그룹에 대한 A
의 행 개수를 나타냅니다.
입력 인수
func
— 함수
함수 핸들
함수로, 함수 핸들로 지정됩니다. 함수를 파일에 정의하거나 익명 함수로 정의할 수 있습니다. func
가 둘 이상의 함수 파일에 대응하는 경우(즉, func
가 일련의 오버로드된 함수를 나타내는 경우) MATLAB®은 입력 인수의 클래스에 따라 어떤 함수를 호출할지를 결정합니다.
func
은 size(A,2)
개의 입력값만 허용할 수 있습니다. 기본적으로, rowfun
은 func
의 첫 번째 출력을 반환합니다. func
의 출력값을 두 개 이상 반환하려면 'NumOutputs'
또는 'OutputVariableNames'
이름-값 쌍의 인수를 사용하십시오.
예: func = @(x,y) x.^2+y.^2;
에서는 두 개의 입력값을 가져와서 제곱의 합을 구합니다.
A
— 입력 테이블
테이블 | 타임테이블
입력 테이블로, table형이나 timetable형으로 지정됩니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'InputVariables',2
에서는 A
의 두 번째 변수만 func
에 대한 입력값으로 사용합니다.
InputVariables
— func
에 전달할 A
의 변수를 선택하기 위한 지정자
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터 | 함수 핸들
func
에 전달할 A
의 변수를 선택하기 위한 지정자로, 'InputVariables'
와 함께 양의 정수, string형 배열, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
스칼라, 논리형 벡터 또는 함수 핸들이 쉼표로 구분되어 지정됩니다.
'InputVariables'
를 함수 핸들로 지정하는 경우, 이것은 논리형 스칼라를 반환해야 하고, rowfun
은 A
에서 함수가 1
(true
)을 반환하는 변수만 전달합니다.
GroupingVariables
— 행 그룹을 정의하는 하나 이상의 A
의 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
행 그룹을 정의하는 하나 이상의 A
의 변수로, 'GroupingVariables'
와 함께 양의 정수, string형 배열, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'GroupingVariables'
의 값은 그룹화 변수의 데이터형이 아니라 어떤 테이블 변수가 그룹화 변수인지를 지정합니다. 그룹화 변수는 숫자형이거나 categorical
, calendarDuration
, datetime
, duration
, logical
또는 string
데이터형일 수 있습니다.
A
에서 동일한 그룹화 변수 값을 가지는 행은 동일한 그룹에 속합니다. rowfun
은 func
를 A
의 각 행에 개별적으로 적용하지 않고, 각 행 그룹에 적용합니다. 출력값 B
는 각 그룹에 대한 하나의 행을 포함합니다.
그룹화 변수가 NaN
또는 누락값(예: NaT
, 정의되지 않은 categorical형 값 또는 누락값인 string형)을 포함하는 경우, 대응하는 행은 어떤 그룹에도 속하지 않고 출력값에서 제외됩니다.
행 레이블은 그룹화 변수일 수 있습니다. 사용자는 행 레이블만을 기준으로, 또는 하나 이상의 A
의 변수를 기준으로, 또는 행 레이블과 변수를 함께 기준으로 하여 그룹화할 수 있습니다.
A
가 테이블인 경우 레이블은 행 이름입니다.A
가 타임테이블인 경우 레이블은 행 시간값입니다.
출력값 B
는 입력값 A
의 각 행 그룹에 대한 하나의 행을 포함합니다.
'OutputFormat','uniform'
또는'OutputFormat','cell'
을 지정하는 경우 출력값은func
가 적용된 입력 테이블 변수에 대응하는 하나 이상의 열을 가집니다.'OutputFormat','table'
또는'OutputFormat','timetable'
을 지정하는 경우 출력값은 다음을 포함합니다.func
가 적용된 입력 테이블 변수에 대응하는 하나 이상의 변수.그룹화 변수에 대응하는 변수.
값이 각 그룹에 있는 입력값
A
의 행 개수인 새로운 변수GroupCount
.
SeparateInputs
— 개별 입력값으로 func
를 호출하는 여부 표시자
true
(디폴트 값) | false
| 1
| 0
개별 입력값으로 func
를 호출하는 여부 표시자로, 'SeparateInputs'
와 함께 true
, false
, 1
, 0
중 하나가 쉼표로 구분되어 지정됩니다.
|
이는 디폴트 동작입니다. |
|
|
ExtractCellContents
— 셀형 변수의 값을 func
로 전달하는 여부 표시자
false
(디폴트 값) | true
| 0
| 1
셀형 변수의 값을 func
로 전달하는 여부 표시자로, 'ExtractCellContents'
와 함께 false
, true
, 0
, 1
중 하나가 쉼표로 구분되어 지정됩니다.
|
그룹화 계산의 경우, 셀형 변수의 각 그룹 내 값은 세로 결합이 가능해야 합니다. |
|
이는 디폴트 동작입니다. |
OutputVariableNames
— func
의 출력값에 대한 변수 이름
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
func
의 출력값에 대한 변수 이름으로, 'OutputVariableNames'
와 함께 비어 있지 않은 고유한 이름을 갖는 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열이 쉼표로 구분되어 지정됩니다. 이름의 개수는 func
에서 필요한 출력값의 개수와 같아야 합니다.
또한, 변수 이름은 유효한 MATLAB 식별자여야 합니다. 유효한 MATLAB 식별자를 변수 이름으로 사용할 수 없는 경우 MATLAB에서는 {'Var1' ... 'Var
형식의 N
'}N
개 문자형 벡터로 구성된 셀형 배열을 사용합니다. 여기서 N
은 변수의 개수입니다. 유효한 MATLAB 변수 이름은 함수 isvarname
을 사용하여 확인할 수 있습니다.
NumOutputs
— func
에서 얻는 출력값 개수
0
| 양의 정수
func
에서 얻는 출력값 개수로, 'NumOutputs'
와 함께 0
이나 양의 정수가 쉼표로 구분되어 지정됩니다. 정수는 func
에서 가능한 출력값 개수보다 작거나 같아야 합니다.
예: 'NumOutputs',2
를 사용하면 rowfun
이 두 개의 출력값으로 func
을 호출합니다.
OutputFormat
— B
의 형식
'table'
(디폴트 값) | 'timetable'
| 'uniform'
| 'cell'
B
의 형식으로, 'OutputFormat'
과 함께 값 'table'
, 'uniform'
, 'cell'
중 하나가 쉼표로 구분되어 지정됩니다.
|
이것은 디폴트 출력 형식입니다. |
|
|
|
|
|
|
ErrorHandler
— func
가 실패할 경우 호출할 함수
함수 핸들
func
가 실패할 경우 호출할 함수로, 'ErrorHandler'
와 함께 함수 핸들이 쉼표로 구분되어 지정됩니다. 오류를 다시 발생시키거나 함수 func
에 대해 유효한 출력값을 반환하도록 이 함수를 정의합니다.
MATLAB에서는 다음과 같이 2개의 입력 인수로 지정된 오류 처리 함수를 호출합니다.
다음 필드를 포함한 구조체:
identifier
오류 ID입니다.
message
오류 메시지 텍스트입니다.
index
오류가 발생한 행 또는 그룹의 인덱스.
오류 발생 시 함수
func
의 입력 인수 세트
예를 들면 다음과 같습니다.
function [A, B] = errorFunc(S, varargin)
warning(S.identifier, S.message);
A = NaN; B = NaN;
출력 인수
버전 내역
R2013b에 개발됨
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)