이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

syms

기호 변수 및 기호 함수 만들기

설명

예제

syms var1 ... varN은 기호 변수 var1 ... varN을 만듭니다. 각 변수는 공백으로 구분합니다. syms는 변수에서 모든 가정을 지웁니다.

예제

syms var1 ... varN [n1 ... nM]는 기호 배열 var1 ... varN을 만듭니다. 각 배열의 크기는 n1x...xnM이며 자동 생성된 기호 변수가 요소로 포함됩니다. 예를 들어, syms a [1 3]은 기호 배열 a = [a1 a2 a3]을 만들고 MATLAB® 작업 공간에 기호 변수 a1, a2a3을 만듭니다. 다차원 배열인 경우 요소는 접두사 a 뒤에 _ 구분기호를 사용해서 요소의 인덱스가 추가됩니다(예: a1_3_2).

예제

syms var1 ... varN n은 자동 생성된 요소로 채워진 nxn 기호 행렬을 만듭니다.

예제

syms ___ set는 생성된 기호 변수가 set에 속한다는 가정을 설정하고 다른 가정을 지웁니다. setreal, positive, integer 또는 rational일 수 있습니다. 공백을 사용하여 여러 가정을 결합할 수도 있습니다. 예를 들어, syms x positive rational은 양의 유리수 값을 가지는 변수 x를 만듭니다.

예제

syms f(var1,...,varN)은 기호 함수 ff의 입력 인수를 나타내는 기호 변수 var1,...,varN을 만듭니다. 한 번의 호출로 여러 개의 기호 함수를 만들 수 있습니다. 예를 들어, syms f(x) g(t)는 2개의 기호 함수(fg)와 2개의 기호 변수(xt)를 만듭니다.

예제

syms f(var1,...,varN) [n1 ... nM]은 자동 생성된 기호 함수를 요소로 가지는 n1x...xnM 기호 배열을 만듭니다. 또한 이 구문은 f의 입력 인수를 나타내는 기호 변수 var1,...,varN을 생성합니다. 예를 들어, syms f(x) [1 2]는 기호 배열 f(x) = [f1(x) f2(x)], 기호 함수 f1(x)f2(x), 기호 변수 x를 MATLAB 작업 공간에 만듭니다. 다차원 배열인 경우 요소는 접두사 f 뒤에 _ 구분기호를 사용해서 요소의 인덱스가 추가됩니다(예: f1_3_2).

예제

syms f(var1,...,varN) n은 자동 생성된 요소로 채워진 nxn 기호 행렬을 만듭니다.

예제

syms(symArray)symArray에 포함된 기호 변수 및 기호 함수를 만듭니다. 여기서 symArray는 기호 변수로 구성된 벡터이거나 기호 변수 및 기호 함수로 구성된 셀형 배열입니다. 이 구문은 solve 또는 symReadSSCVariables 같은 다른 함수로부터 배열이 반환되는 경우에만 사용합니다.

예제

syms는 MATLAB 작업 공간에 있는 모든 기호 변수, 기호 함수 및 기호 배열의 이름을 나열합니다.

예제

S = syms는 모든 기호 변수, 기호 함수 및 기호 배열의 이름을 셀형 배열로 반환합니다.

예제

모두 축소

기호 변수 xy를 만듭니다.

syms x y

자동 생성된 요소 a1, ..., a4를 가지는 1x4 기호 벡터 a를 만듭니다.

syms a [1 4]
a
a =
[ a1, a2, a3, a4]

생성된 요소의 명명 형식을 형식 문자 벡터를 사용하여 변경합니다. 각 변수 이름을 작은따옴표로 묶어 기호 변수를 선언합니다. syms는 형식 문자형 벡터의 %d에 요소의 인덱스를 대입하여 요소 이름을 생성합니다.

syms 'a_%d' 'b_%d' [1 4]
a
b
a =
[ a_1, a_2, a_3, a_4]

b =
[ b_1, b_2, b_3, b_4]

기호 변수 xy를 만들고 변수가 정수라고 가정합니다.

syms x y integer

또다른 변수 z를 만들고 양의 유리수 값을 가진다고 가정합니다.

syms z positive rational

가정을 확인합니다.

assumptions
ans =
[ in(x, 'integer'), in(y, 'integer'), in(z, 'rational'), 0 < z]

또는 각 변수의 가정을 확인합니다. 예를 들어, 변수 x에 설정된 가정을 확인합니다.

assumptions(x)
ans =
in(x, 'integer')

x, yz에 설정된 가정을 지웁니다.

assume([x y z],'clear')
assumptions
ans =
Empty sym: 1-by-0

1x3 기호 배열 a를 만들고 배열 요소가 실수 값을 가진다고 가정합니다.

syms a [1 3] real
assumptions
ans =
[ in(a1, 'real'), in(a2, 'real'), in(a3, 'real')]

인수가 하나 있는 기호 함수와 두 개 있는 기호 함수를 만듭니다.

syms s(t) f(x,y)

sf 모두 추상적 기호 함수입니다. 이러한 함수에는 기호 표현식이 할당되지 않으므로 함수의 본문은 각각 s(t)f(x,y)입니다.

f에 대해 다음 식을 지정합니다.

f(x,y) = x + 2*y
f(x, y) =
x + 2*y

x = 1y = 2에서 함수 값을 구합니다.

f(1,2)
ans =
5

기호 함수를 만들고 기호 행렬을 사용하여 해당 식을 지정합니다.

syms x
M = [x x^3; x^2 x^4];
f(x) = M
f(x) =
[   x, x^3]
[ x^2, x^4]

x = 2에서 함수 값을 구합니다.

f(2)
ans =
[ 2,  8]
[ 4, 16]

x = [1 2 3; 4 5 6]에 대한 이 함수의 값을 구합니다. 결과는 기호 행렬로 구성된 셀형 배열입니다.

xVal = [1 2 3; 4 5 6];
y = f(xVal)
y =
  2×2 cell array
    {2×3 sym}    {2×3 sym}
    {2×3 sym}    {2×3 sym}

셀형 배열에 중괄호를 사용하여 셀의 내용에 액세스합니다.

y{1}
ans =
[ 1, 2, 3]
[ 4, 5, 6]

자동 생성된 기호 함수를 요소로 가지는 2x2 기호 행렬을 만듭니다.

syms f(x,y) 2
f
f(x, y) =
[ f1_1(x, y), f1_2(x, y)]
[ f2_1(x, y), f2_2(x, y)]

기호 함수 f1_1(x,y)f2_2(x,y)에 기호 표현식을 할당합니다. 이렇게 표현식을 할당하면 기호 행렬 f의 요소에는 여전히 원래의 기호 함수가 포함되어 있습니다.

f1_1(x,y) = 2*x;
f2_2(x,y) = x - y;
f
f(x, y) =
[ f1_1(x, y), f1_2(x, y)]
[ f2_1(x, y), f2_2(x, y)]

subs 함수를 사용하여 f1_1(x,y)f2_2(x,y)에 할당된 표현식을 대입합니다.

A = subs(f)
A(x, y) =
[        2*x, f1_2(x, y)]
[ f2_1(x, y),      x - y]

대입한 표현식을 포함하고 있는 기호 행렬 A의 값을 x = 2y = 3에 대해 구합니다.

A(2,3)
ans =
[          4, f1_2(2, 3)]
[ f2_1(2, 3),         -1]

solvesymReadSSCVariables 같은 특정 함수는 기호 변수로 구성된 벡터 또는 기호 변수 및 기호 함수로 구성된 셀형 배열을 반환할 수 있습니다. 이러한 변수 또는 함수는 MATLAB 작업 공간에 자동으로 나타나지 않습니다. syms를 사용하여 벡터 또는 셀형 배열에서 이러한 변수 또는 함수를 만듭니다.

solve를 사용하여 방정식 sin(x) == 1을 풉니다. 해의 파라미터 k는 MATLAB 작업 공간에 나타나지 않습니다.

syms x
eqn = sin(x) == 1;
[sol, parameter, condition] = solve(eqn, x, 'ReturnConditions', true);
parameter
parameter =
k

syms를 사용하여 파라미터 k를 만듭니다. 이제 MATLAB 작업 공간에 파라미터 k가 나타납니다.

syms(parameter)

마찬가지로, 벡터 또는 셀형 배열에 포함된 기호 객체를 만들려면 syms를 사용하십시오. 기호 객체로 구성된 셀형 배열을 반환하는 함수의 예는 symReadSSCVariablessymReadSSCParameters입니다.

기호 변수, 기호 함수 및 기호 배열을 몇 개 만듭니다.

syms a f(x)
syms A [2 2]

syms를 사용하여 현재 MATLAB 작업 공간에 있는 모든 기호 객체의 목록을 표시합니다.

syms
Your symbolic variables are:

A     A1_1  A1_2  A2_1  A2_2  a     f     x

목록을 표시하는 대신 syms에 출력값을 제공하여 모든 기호 객체로 구성된 셀형 배열을 반환합니다.

S = syms
S =
  8×1 cell array
    {'A'   }
    {'A1_1'}
    {'A1_2'}
    {'A2_1'}
    {'A2_2'}
    {'a'   }
    {'f'   }
    {'x'   }

여러 개의 기호 객체를 만듭니다.

syms a b c f(x)

syms 함수를 사용하여 모든 기호 객체를 셀형 배열로 반환합니다. cellfun 함수를 사용하여 셀형 배열 symObj에서 모든 기호 객체를 삭제합니다.

symObj = syms;
cellfun(@clear,symObj)

syms를 호출하여 모든 기호 객체를 삭제했는지 확인합니다. 출력값이 비어 있습니다. 즉, MATLAB 작업 공간에 기호 객체가 없습니다.

syms

입력 인수

모두 축소

기호 변수, 기호 행렬 또는 기호 배열로, 공백으로 구분된 유효한 변수 이름으로 지정됩니다. 각 변수 이름은 문자로 시작해야 하며 영숫자와 밑줄만 포함할 수 있습니다. 변수 이름이 유효한지 확인하려면 isvarname을 사용하십시오.

예: x y123 z_1

벡터, 행렬 또는 배열 차원으로, 정수 벡터로 지정됩니다. 하나의 정수만 지정하여 정사각 행렬을 간단히 만들 수도 있습니다. 예를 들어, syms x 33x3 정사각 행렬을 만듭니다.

예: [2 3], [2,3], [2;3]

기호 변수 또는 기호 행렬에 설정된 가정으로, real, positive, integer 또는 rational로 지정됩니다.

공백을 사용하여 여러 가정을 결합할 수 있습니다. 예를 들어, syms x positive rational은 양의 유리수 값을 가지는 변수 x를 만듭니다.

예: rational

입력 인수를 포함하는 기호 함수로, 괄호를 사용한 표현식으로 지정됩니다. 함수 이름 f와 변수 이름 var1...varN은 유효한 변수 이름이어야 합니다. 즉, 문자로 시작하고 영숫자와 밑줄만 포함해야 합니다. 변수 이름이 유효한지 확인하려면 isvarname을 사용하십시오.

예: s(t), f(x,y)

기호 변수 또는 기호 함수로, 기호 변수로 구성된 벡터 또는 기호 변수 및 기호 함수로 구성된 셀형 배열로 지정됩니다. 이러한 벡터나 배열은 일반적으로 solve, symReadSSCVariables 같은 다른 함수의 출력값입니다.

출력 인수

모두 축소

MATLAB 작업 공간에 있는 모든 기호 변수, 기호 함수 및 기호 배열의 이름으로, 문자형 벡터로 구성된 셀형 배열로 반환됩니다.

  • symssym의 사용을 간소화합니다. 이 함수를 사용하면 하나의 함수 호출에서 여러 개의 기호 변수를 만들 수 있습니다. 또는 sym을 사용하여 각 변수를 따로 만들 수도 있습니다. 그러나 sym을 사용하여 변수를 만들면 생성된 변수에 대한 기존 가정이 유지됩니다. symfun을 사용하여 기호 함수를 만들 수도 있습니다.

  • 함수와 스크립트에서 syms를 사용하여 MATLAB 함수와 동일한 이름의 기호 변수를 만들지 마십시오. 이러한 이름의 경우 MATLAB은 기호 변수를 만들지 않고 함수에 할당된 이름을 유지합니다. 함수 또는 스크립트에서 MATLAB 함수와 같은 이름의 기호 변수를 만들려면 대신 sym을 사용하십시오. 예를 들어, alpha = sym('alpha')를 사용합니다.

  • 변수 이름 integer, real, rational, positiveclearsyms와 함께 사용할 수 없습니다. 이러한 이름으로 변수를 만들려면 sym을 사용하십시오. 예를 들어, real = sym('real')을 사용합니다.

  • clear x는 실수, 양수 같은 가정을 설정한 기호 객체와 assume, sym, syms로 설정한 가정을 지우지 않습니다. 가정을 제거하려면 다음 옵션 중 하나를 사용하십시오.

    • syms xx에서 모든 가정을 지웁니다.

    • assume(x,'clear')x에서 모든 가정을 지웁니다.

    • clear all은 MATLAB 작업 공간에서 모든 객체를 지우고 기호 엔진을 초기화합니다.

    • assumeassumeAlso는 변수에 대한 가정을 설정하는 데 더 많은 유연성을 제공합니다.

  • 숫자형 벡터 또는 숫자형 행렬에서 하나 이상의 요소를 기호 숫자로 대체하면 MATLAB은 해당 숫자를 배정밀도 숫자로 변환합니다.

    A = eye(3);
    A(1,1) = sym('pi')
    A =
        3.1416         0         0
             0    1.0000         0
             0         0    1.0000

    숫자형 벡터 또는 숫자형 행렬의 요소를 기호 변수, 기호 표현식 또는 기호 함수로 대체할 수 없습니다. 이러한 요소는 배정밀도 숫자로 변환할 수 없기 때문입니다. 예를 들어, syms a; A(1,1) = a는 오류를 발생시킵니다.

호환성 관련 고려 사항

모두 확장

R2018b에서 동작이 변경됨

R2018b부터 경고 표시

R2006a 이전에 개발됨