Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

fitoptions

fit options 객체 생성 또는 수정

설명

예제

fitOptions = fitoptions는 디폴트 fit options 객체 fitOptions를 만듭니다.

예제

fitOptions = fitoptions(libraryModelName)은 라이브러리 모델에 대한 디폴트 fit options 객체를 만듭니다.

예제

fitOptions = fitoptions(libraryModelName,Name,Value)는 라이브러리 모델에 대한 피팅 옵션을 하나 이상의 Name,Value 쌍의 인수로 지정된 추가 옵션을 사용하여 만듭니다.

예제

fitOptions = fitoptions(fitType)은 지정된 fitType에 대한 fit options 객체를 가져옵니다. 사용자 지정 모델의 피팅 옵션으로 작업하려면 이 구문을 사용하십시오.

예제

fitOptions = fitoptions(Name,Value)는 하나 이상의 Name,Value 쌍의 인수로 지정된 추가 옵션을 사용하여 피팅 옵션을 만듭니다.

예제

newOptions = fitoptions(fitOptions,Name,Value)는 기존 fit options 객체 fitOptions를 수정하여 하나 이상의 Name,Value 쌍의 인수로 지정된 새로운 옵션을 적용하여 업데이트된 피팅 옵션을 newOptions에 반환합니다.

예제

newOptions = fitoptions(options1,options2)는 기존 fit options 객체 options1options2newOptions로 결합합니다.

  • Method가 동일한 경우 options2의 속성에 비어 있지 않은 값이 있으면 options1의 대응하는 속성값이 재정의되어 newOptions로 반환됩니다.

  • Method가 다른 경우 newOptionsMethod에 대해서는 options1의 값을, Normalize, Exclude, Weights에 대해서는 options2의 값을 포함합니다.

예제

모두 축소

디폴트 fit options 객체를 만들고 피팅 전에 데이터를 정규화하도록 옵션을 설정합니다.

options = fitoptions;
options.Normal = 'on'
options = 
  basefitoptions with properties:

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'None'

options = fitoptions('gauss2')
options = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [-Inf -Inf 0 -Inf -Inf 0]
            Upper: []
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
           Robust: 'Off'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

3차 다항식에 대한 피팅 옵션을 만들고 정규화 옵션과 로버스트 옵션을 설정합니다.

options = fitoptions('poly3', 'Normalize', 'on', 'Robust', 'Bisquare')
options = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Bisquare'
    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

options = fitoptions('Method', 'LinearLeastSquares')
options = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

최근접이웃 외삽으로 선형 보간에 대한 fitoptions 객체를 만듭니다.

linearoptions = fitoptions("linearinterp",ExtrapolationMethod="nearest")
linearoptions = 
  linearinterpoptions with properties:

    ExtrapolationMethod: 'nearest'
              Normalize: 'off'
                Exclude: []
                Weights: []
                 Method: 'LinearInterpolant'

최근접이웃 외삽으로 3차 보간 피팅에 대한 두 번째 fitoptions 객체를 만듭니다.

cubicoptions = fitoptions("cubicinterp",ExtrapolationMethod="nearest")
cubicoptions = 
  cubicsplineinterpoptions with properties:

    ExtrapolationMethod: 'nearest'
              Normalize: 'off'
                Exclude: []
                Weights: []
                 Method: 'CubicSplineInterpolant'

fit 함수를 사용하여 linearinterp 피팅 객체를 만들기 위해 linearoptions에 있는 피팅 옵션을 사용할 수 있습니다. cubicinterp 피팅을 만들려면 cubicoptions를 사용합니다.

Normalize, Exclude 또는 Weights 속성을 설정한 후 다른 피팅 방법에서 동일한 옵션을 사용하여 데이터를 피팅하려는 경우 디폴트 fit options 객체를 수정하는 것이 유용합니다. 예를 들어, 아래에서는 동일한 피팅 옵션을 사용하여 여러 라이브러리 모델 유형을 피팅합니다.

load census
options = fitoptions;
options.Normalize = 'on';
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicspline',options)
f3 = 
     Cubic interpolating spline:
       f3(x) = piecewise polynomial computed from p
       with cubic extrapolation
       where x is normalized by mean 1890 and std 62.05
     Coefficients:
       p = coefficient structure

평활화 파라미터를 찾습니다. fit 함수의 세 번째 출력 인수로 데이터 관련 피팅 옵션(예: smooth 파라미터)이 반환됩니다.

load census
[f,gof,out] = fit(cdate,pop,'SmoothingSpline');
smoothparam = out.p
smoothparam = 0.0089

새 피팅을 위해 디폴트 평활화 파라미터를 수정합니다.

options = fitoptions('Method','SmoothingSpline',...
                     'SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'SmoothingSpline',options);

가우스 피팅을 만들고, 신뢰구간을 조사하고, 알고리즘에 도움이 되도록 하한 피팅 옵션을 지정합니다.

하나는 너비가 작고 다른 하나는 너비가 큰 두 개의 가우스 피크를 합하여 잡음을 만듭니다.

a1 = 1; b1 = -1; c1 = 0.05;
a2 = 1; b2 = 1; c2 = 50;
x = (-10:0.02:10)';
gdata = a1*exp(-((x-b1)/c1).^2) + ...
        a2*exp(-((x-b2)/c2).^2) + ...
        0.1*(rand(size(x))-.5);
plot(x,gdata)

Figure contains an axes object. The axes object contains an object of type line.

2항 가우스 라이브러리 모델을 사용하여 데이터를 피팅합니다.

gfit = fit(x,gdata,'gauss2') 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =     -0.1451  (-1.485, 1.195)
       b1 =       9.725  (-14.7, 34.15)
       c1 =       7.117  (-15.84, 30.07)
       a2 =       14.08  (-1.962e+04, 1.965e+04)
       b2 =       607.4  (-3.197e+05, 3.209e+05)
       c2 =         376  (-9.745e+04, 9.82e+04)
plot(gfit,x,gdata)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

여러 계수의 신뢰구간이 넓어 알고리즘이 문제를 겪고 있습니다.

알고리즘에 도움이 되도록 하려면 음이 아닌 진폭 a1, a2와 너비 c1, c2에 대해 하한을 지정하십시오.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0]);

또는 options.Property = NewPropertyValue 형식을 사용하여 피팅 옵션의 속성을 설정할 수도 있습니다.

options = fitoptions('gauss2');
options.Lower = [0 -Inf 0 0 -Inf 0];

계수에 대한 한계값 제약 조건을 사용하여 피팅을 다시 계산합니다.

gfit = fit(x,gdata,'gauss2',options) 
gfit = 
     General model Gauss2:
     gfit(x) =  a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
     Coefficients (with 95% confidence bounds):
       a1 =       1.005  (0.966, 1.044)
       b1 =          -1  (-1.002, -0.9988)
       c1 =      0.0491  (0.0469, 0.0513)
       a2 =      0.9985  (0.9958, 1.001)
       b2 =      0.8059  (0.3879, 1.224)
       c2 =        50.6  (46.68, 54.52)
plot(gfit,x,gdata)

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

피팅이 훨씬 더 나아졌습니다. fit options 객체의 다른 속성에 합리적인 값을 할당하여 피팅을 더 개선할 수 있습니다.

피팅 옵션을 만들고 하한을 설정합니다.

options = fitoptions('gauss2', 'Lower', [0 -Inf 0 0 -Inf 0])
options = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            Upper: []
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
           Robust: 'Off'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

피팅 옵션의 새 복사본을 만들고 로버스트 파라미터를 수정합니다.

newoptions = fitoptions(options, 'Robust','Bisquare')
newoptions = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            Upper: []
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
           Robust: 'Bisquare'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

피팅 옵션을 결합합니다.

options2 = fitoptions(options, newoptions)
options2 = 
  nlsqoptions with properties:

       StartPoint: []
            Lower: [0 -Inf 0 0 -Inf 0]
            Upper: []
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06
           Robust: 'Bisquare'
        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'

선형 모델 피팅 유형을 만듭니다.

lft = fittype({'x','sin(x)','1'})
lft = 
     Linear model:
     lft(a,b,c,x) = a*x + b*sin(x) + c

피팅 유형 lft에 대한 피팅 옵션을 가져옵니다.

fo = fitoptions(lft)
fo = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'off'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

정규화 피팅 옵션을 설정합니다.

fo.Normalize = 'on'
fo = 
  llsqoptions with properties:

        Lower: []
        Upper: []
       Robust: 'Off'
    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'LinearLeastSquares'

입력 인수

모두 축소

피팅할 라이브러리 모델로, 문자형 벡터나 string형 스칼라로 지정됩니다. 다음 표에는 몇 가지 일반적인 예가 나와 있습니다.

라이브러리 모델 이름

설명

'poly1'

1차 다항식 곡선

'poly11'

1차 다항식 곡면

'poly2'

2차 다항식 곡선

'linearinterp'

조각별 선형 보간

'cubicinterp'

조각별 3차 보간

'smoothingspline'

평활화 스플라인(곡선)

'lowess'

국소 선형 회귀(곡면)

'log10'

밑이 10인 로그 곡선

'logistic4'

4개의 파라미터를 갖는 로지스틱 곡선

라이브러리 모델 이름 목록은 모델 이름과 방정식 항목을 참조하십시오.

예: 'poly2'

데이터형: char | string

피팅할 모델 유형으로, fittype 함수로 생성된 fittype으로 지정됩니다. 사용자 지정 모델의 피팅 옵션으로 작업하려면 이를 사용하십시오.

알고리즘 옵션으로, fitoptions 함수를 사용하여 만든 fitoptions 객체로 지정됩니다.

결합할 알고리즘 옵션으로, fitoptions 함수를 사용하여 생성됩니다.

결합할 알고리즘 옵션으로, fitoptions 함수를 사용하여 생성됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'Method','NonlinearLeastSquares','Lower',[0,0],'Upper',[Inf,max(x)],'Startpoint',[1 1]은 피팅 방법, 한계 및 시작점을 지정합니다.

모든 피팅 방법의 옵션

모두 축소

데이터 정규화 옵션으로, 'Normalize'와 함께 'on' 또는 'off'가 쉼표로 구분되어 지정됩니다.

데이터형: char

피팅에서 제외할 점으로, 'Exclude'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

  • 논리형 벡터를 설명하는 표현식(예: x > 10).

  • 제외하려는 점을 참조하는 정수로 구성된 벡터(예: [1 10 25]).

  • 모든 데이터 점에 대한 논리형 벡터. true가 이상값을 나타내며 excludedata를 사용하여 만듭니다.

예제는 fit을 참조하십시오.

피팅의 가중치로, 'Weights'와 함께 크기가 데이터 점의 개수와 같은 벡터가 쉼표로 구분되어 지정됩니다.

데이터형: double

피팅 방법으로, 'Method'와 함께 다음 표에 나와 있는 피팅 방법 중 하나가 쉼표로 구분되어 지정됩니다.

피팅 방법

설명

'NearestInterpolant'

최근접이웃 보간

'LinearInterpolant'

선형 보간

'PchipInterpolant'

조각별 3차 에르미트 보간(곡선만)

'CubicSplineInterpolant'

3차 스플라인 보간

'BiharmonicInterpolant'

쌍조화 곡면 보간

'SmoothingSpline'

평활화 스플라인

'LowessFit'

Lowess 평활화(곡면만)

'LinearLeastSquares'

선형 최소제곱

'NonlinearLeastSquares'

비선형 최소제곱

데이터형: char | string

보간 옵션

모두 축소

보간 피팅을 위한 외삽 방법으로, 다음 값 중 하나로 지정됩니다.

설명지원되는 피팅
"auto"

모든 보간 피팅 유형에 대한 디폴트 값. fit 함수를 사용하는 경우, 외삽 방법을 자동으로 할당하려면 ExtrapolationMethod"auto"로 설정합니다.

모든 보간 피팅 유형 및 cubicspline 곡선 피팅

"none"

외삽 없음. fit 함수와 함께 fitOptions를 사용하여 볼록 껍질 외부에 있는 쿼리 점을 평가하는 경우 fitNaN을 반환합니다.

곡선 피팅 — cubicsplinepchipinterp

곡선 피팅 및 곡면 피팅 — cubicinterp, linearinterp, nearestinterp

"linear"

경계 기울기에 따른 선형 외삽

곡면 피팅 — cubicinterpnearestinterp

곡선 피팅 및 곡면 피팅 — linearinterp

"nearest"

최근접이웃 외삽. 이 방법은 피팅 데이터의 볼록 껍질 경계에서 가장 근접한 점의 값으로 평가됩니다.

곡선 피팅 — cubicsplinepchipinterp

곡선 피팅 및 곡면 피팅 — cubicinterp, linearinterp, nearestinterp

"thinplate"

박판 스플라인 외삽. 이 방법은 피팅 데이터의 볼록 껍질 외부에서 박판 보간 스플라인을 확장합니다. 자세한 내용은 tpaps 항목을 참조하십시오.

곡면 피팅 — thinplateinterp

"biharmonic"

쌍조화 스플라인 외삽. 이 방법은 피팅 데이터의 볼록 껍질 외부에서 쌍조화 보간 스플라인을 확장합니다.

곡면 피팅 — biharmonicinterp

"pchip"

조각별 3차 에르미트 보간 다항식(PCHIP) 외삽. 이 방법은 피팅 데이터의 볼록 껍질 외부에서 형태 보존 PCHIP를 확장합니다. 자세한 내용은 pchip 항목을 참조하십시오.

곡선 피팅 — pchipinterp

"cubic"

3차 스플라인 외삽. 이 방법은 피팅 데이터의 볼록 껍질 외부에서 3차 보간 스플라인을 확장합니다.

곡선 피팅 — cubicinterpcubicspline

데이터형: char | string

평활화 옵션

모두 축소

평활화 파라미터로, 'SmoothingParam'과 함께 0과 1 사이의 스칼라 값이 쉼표로 구분되어 지정됩니다. 디폴트 값은 데이터 세트에 따라 달라집니다. MethodSmoothingSpline인 경우에만 사용할 수 있습니다. 자세한 내용은 평활화 스플라인 소개 항목을 참조하십시오.

데이터형: double

국소 회귀에서 사용할 데이터 점의 비율로, 'Span'과 함께 0과 1 사이의 스칼라 값이 쉼표로 구분되어 지정됩니다. MethodLowessFit인 경우에만 사용할 수 있습니다.

데이터형: double

선형 및 비선형 최소제곱 옵션

모두 축소

로버스트 선형 최소제곱 피팅 방법으로, 'Robust'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'LAR'은 최소 절대 잔차법을 지정합니다.

  • 'Bisquare'는 겹제곱 가중치 방법을 지정합니다.

MethodLinearLeastSquares 또는 NonlinearLeastSquares인 경우에 사용할 수 있습니다.

데이터형: char

피팅할 계수의 하한으로, 'Lower'와 함께 벡터가 쉼표로 구분되어 지정됩니다. 디폴트 값은 빈 벡터로, 이는 피팅에 하한이라는 제약 조건이 적용되지 않음을 나타냅니다. 한계가 지정된 경우 벡터 길이는 계수의 개수와 같아야 합니다. coeffnames 함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 fit을 참조하십시오. 제약 조건이 적용되지 않은 개별 하한은 -Inf로 지정할 수 있습니다.

MethodLinearLeastSquares 또는 NonlinearLeastSquares인 경우에 사용할 수 있습니다.

데이터형: double

피팅할 계수의 상한으로, 'Upper'와 함께 벡터가 쉼표로 구분되어 지정됩니다. 디폴트 값은 빈 벡터로, 이는 피팅에 상한이라는 제약 조건이 적용되지 않음을 나타냅니다. 한계가 지정된 경우 벡터 길이는 계수의 개수와 같아야 합니다. coeffnames 함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 fit을 참조하십시오. 제약 조건이 적용되지 않은 개별 상한은 +Inf로 지정할 수 있습니다.

MethodLinearLeastSquares 또는 NonlinearLeastSquares인 경우에 사용할 수 있습니다.

데이터형: logical

비선형 최소제곱 옵션

모두 축소

계수의 초기값으로, 'StartPoint'와 함께 벡터가 쉼표로 구분되어 지정됩니다. coeffnames 함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 fit을 참조하십시오.

fit 함수로 전달된 시작점(빈 벡터의 디폴트 값)이 없는 경우, 일부 라이브러리 모델의 시작점은 발견적 방식으로 정해집니다. 유리 모델과 베이불 모델, 그리고 모든 사용자 지정 비선형 모델의 경우, 이 툴박스는 구간 (0,1)에서 계수에 대한 디폴트 초기값을 임의로 균일하게 선택합니다. 따라서 동일한 데이터와 모델을 사용해서 피팅을 여러 번 수행하면 피팅된 계수가 서로 다를 수 있습니다. 이를 방지하려면 StartPoint 속성에 벡터 값을 사용하여 계수에 대한 초기값을 지정하십시오.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

피팅 절차에 사용할 알고리즘으로, 'Algorithm'과 함께 'Levenberg-Marquardt' 또는 'Trust-Region'이 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: char

유한 차분 기울기에 대한 계수의 최대 변화량으로, 'DiffMaxChange'와 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

유한 차분 기울기에 대한 계수의 최소 변화량으로, 'DiffMinChange'와 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

명령 창의 표시 옵션으로, 'Display'와 함께 다음 옵션 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'notify'는 피팅이 수렴하지 않는 경우에만 출력값을 표시합니다.

  • 'final'은 최종 출력값만 표시합니다.

  • 'iter'은 각 반복마다 출력값을 표시합니다.

  • 'off'는 출력값을 표시하지 않습니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: char

모델의 허용되는 최대 실행 횟수로, 'MaxFunEvals'와 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

피팅에 대해 허용되는 최대 반복 횟수로, 'MaxIter'과 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

모델 값에 대한 종료 허용오차로, 'TolFun'과 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

계수 값에 대한 종료 허용오차로, 'TolX'와 함께 스칼라가 쉼표로 구분되어 지정됩니다.

MethodNonlinearLeastSquares인 경우 사용할 수 있습니다.

데이터형: double

출력 인수

모두 축소

알고리즘 옵션으로, options 객체로 반환됩니다.

새 알고리즘 옵션으로, options 객체로 반환됩니다.

버전 내역

R2006a 이전에 개발됨

모두 확장