이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
syms
또는 sym
함수 선택하기
Symbolic Math Toolbox™에서 syms
또는 sym
함수를 사용하여 기호 객체를 선언할 수 있습니다. 이 두 함수는 개념적으로 서로 다릅니다.
syms
함수는 동일한 이름의 MATLAB® 변수에 자동으로 할당되는 기호 객체를 생성합니다.sym
함수는 동일한 이름 또는 다른 이름의 MATLAB 변수에 할당할 수 있는 기호 객체를 참조합니다.
기호 변수를 MATLAB 변수에 할당하기
syms
함수는 변수를 동적으로 생성합니다. 예를 들어, 명령 syms x
는 기호 변수 x
를 생성하여 동일한 이름의 MATLAB 변수에 자동으로 할당합니다.
syms x
x
x =
sym
함수는 기호 변수를 참조하며, 사용자는 이를 다른 이름으로 MATLAB 변수에 할당할 수 있습니다. 예를 들어, 명령 f1 = sym('x')
는 기호 변수 x
를 참조하며 이를 MATLAB 변수 f1
에 할당합니다.
f1 = sym('x')
f1 =
기호 숫자 만들기
syms
함수를 사용하여 기호 변수 x
를 만들고 MATLAB 변수 x
에 자동으로 할당합니다. MATLAB 변수 x
에 숫자를 할당하면, 숫자가 배정밀도로 표현되며 이 할당이 기호 변수에 대한 이전 할당을 덮어씁니다. x
의 클래스는 double
이 됩니다.
syms x
x = 1/33
x = 0.0303
class(x)
ans = 'double'
sym
함수를 사용하여 부동소수점 근사 없이 정확한 기호 숫자를 참조합니다. 그러면 이 숫자를 MATLAB 변수 x
에 할당할 수 있습니다. x
의 클래스는 sym
입니다.
x = sym('1/33')
x =
class(x)
ans = 'sym'
가정이 있는 기호 변수 만들기
가정이 있는 기호 변수를 만들면 MATLAB은 기호 변수와 가정을 따로 저장합니다.
syms
함수를 사용하여 동일한 이름의 MATLAB 변수에 할당되는 기호 변수를 만듭니다. 그러면 가정이 없는 깨끗한 기호 변수를 얻게 됩니다. syms
를 사용하여 변수를 선언하면 기존 가정이 지워집니다.
syms x positive syms x assumptions
ans = Empty sym: 1-by-0
sym
을 사용하여 기존의 기호 변수를 참조합니다. 이 기호 변수가 이전 MATLAB 세션에서 사용되었다면 sym
은 그 기호 변수와 현재 가정을 참조합니다. 이전에 사용되지 않았다면 sym
은 가정이 없는 기호 변수를 만듭니다.
syms x positive x = sym('x'); assumptions
ans =
여러 기호 변수 만들기
여러 기호 변수를 동시에 만들려면 syms
함수를 사용하는 것이 더 편리합니다. 한 줄의 코드에 여러 개의 변수를 만들 수 있습니다.
syms a b c
sym
을 사용할 때는, MATLAB 변수를 하나씩 선언하고 각 변수를 해당 기호 변수로 참조해야 합니다.
a = sym('a'); b = sym('b'); c = sym('c');
기호 변수로 구성된 배열 만들기
기호 변수가 요소로 포함된 기호 배열을 선언하려면 syms
또는 sym
을 사용합니다.
명령 syms a [1 3]
은 1×3 기호 배열 a
와 기호 변수 a1
, a2
, a3
을 작업 공간에 만듭니다. 기호 변수 a1
, a2
, a3
은 기호 배열 a
에 자동으로 할당됩니다.
clear syms a [1 3] a
a =
whos
Name Size Bytes Class Attributes a 1x3 8 sym a1 1x1 8 sym a2 1x1 8 sym a3 1x1 8 sym
명령 a = sym('a',[1 3])
은 기호 변수 a1
, a2
, a3
을 참조하며 이들 변수는 작업 공간의 기호 배열 a
에 할당됩니다. 요소 a1
, a2
, a3
은 작업 공간에 생성되지 않습니다.
clear
a = sym('a',[1 3])
a =
whos
Name Size Bytes Class Attributes a 1x3 8 sym
병렬 for 루프에 기호 변수 만들기
병렬 계산을 위해 각 워커에 기호 변수를 만들려면 sym
을 사용합니다. 예를 들어, parfor
루프에 기호 변수 k
를 만들어 symsum
을 사용하여 급수의 합을 수행할 수 있습니다.
S = zeros(1,10); parfor i = 1:10 k = sym('k'); S(i) = symsum(1/k^i,k,1,Inf); end
Starting parallel pool (parpool) using the 'Processes' profile ... Connected to the parallel pool (number of workers: 6).
syms
는 작업 공간의 전역 상태를 수정하기 때문에 parfor
루프에 기호 변수를 만드는 데 사용할 수 없습니다.
중첩 함수의 기호 변수 만들기
중첩 함수 내에서 기호 변수를 선언하려면 sym
을 사용합니다. 예를 들어, 부모 함수 작업 공간에서 MATLAB 변수 x
를 명시적으로 정의하고 x
를 동일한 이름의 기호 변수로 참조할 수 있습니다.
function primaryFx x = sym('x') function nestedFx ... end end
중첩 함수는 작업 공간을 정적으로 만듭니다. 따라서 syms
를 사용하여 동적으로 변수를 추가할 수 없습니다.