Main Content

라이브 편집기에서 기호 워크플로의 다음 단계 작업 제안

R2021b부터, 라이브 편집기에서 기호 출력값을 생성하는 코드를 실행하면 라이브 편집기는 출력값에 맞춰 다음 단계 작업을 제안하는 상황별 메뉴를 제공합니다. 이 제안 메뉴를 열려면 마우스로 기호 출력값을 가리키고 세 점 아이콘 kebab_icon.png을 클릭하거나 기호 출력값을 마우스 오른쪽 버튼으로 클릭합니다. 기호 워크플로 라이브 스크립트를 다시 열 때, 코드를 다시 실행하면 다음 단계 작업이 제안됩니다.

또한 R2023b부터는 코드를 실행한 후 다음 단계 작업 제안으로 이동하는 바로 가기 키를 사용할 수 있습니다. 라이브 편집기에서 코드와 출력 사이를 이동하려면, 출력값을 인라인으로 표시하도록 지정한 경우에는 위쪽/아래쪽 화살표를 사용하고 출력값을 오른쪽에 표시하도록 지정한 경우에는 Ctrl+Shift+O(macOS 시스템에서는 Option+Command+O 사용)를 사용합니다. Return 키를 눌러 기호 출력값을 활성화합니다. 바로 가기 Shift+F10을 사용하여 제안 메뉴를 엽니다.

이러한 제안 메뉴를 사용해 함수 호출 또는 라이브 편집기 작업을 라이브 스크립트에 삽입하여 실행할 수 있습니다. 이러한 제안 메뉴의 일반적인 용도는 다음과 같습니다.

  • 기호 표현식을 계산하고 숫자형 값으로 변환합니다.

  • 기호 수학 방정식을 단순화하거나 조작하거나 풉니다.

  • 기호 표현식을 플로팅합니다.

  • 행렬의 역행렬 및 행렬식 구하기, 야코비 행렬 및 벡터의 회전 구하기 등과 같은 행렬 연산과 벡터 연산을 수행합니다.

  • 미분, 적분, 변환, 미분 방정식 풀기 등의 미적분 함수를 수행합니다.

  • 측정 단위 간에 변환하고 단위 차원을 확인합니다.

예를 들어 새 라이브 스크립트에서 기호 표현식을 만듭니다.

expr = (pi + sym(2))^2
expr = π+22

실행을 클릭하여 결과(즉, 기호 출력값)를 확인합니다. 기호 출력값을 생성하는 코드를 처음 실행하는 경우 라이브 편집기는 팝업 알림과 함께 다음 단계 작업 제안에 대한 세 점 아이콘 kebab_icon.png을 표시합니다. 기호 출력값을 가리켜서 세 점 아이콘을 표시할 수도 있습니다. 나머지 워크플로에서 이 팝업 알림을 표시하지 않으려면 다시 표시 안 함을 선택합니다.

출력값의 오른쪽에 있는 세 점 아이콘 kebab_icon.png을 클릭하여 제안 메뉴를 표시합니다. 메뉴 항목을 가리키면 라이브 편집기는 해당 메뉴 항목 선택 시 어떻게 되는지에 대한 미리보기를 제공합니다. 예를 들어 수치적으로 근사를 가리키면 제안하는 새 코드 라인이 표시됩니다.

제안된 새 코드 라인을 추가하려면 수치적으로 근사를 선택합니다. 라이브 편집기는 vpa 함수를 코드 영역에 삽입하고 현재 섹션을 자동으로 실행하여 표현식을 수치적으로 계산합니다.

var = vpa(expr)
var = 26.435975015448531572685064532994

또 다른 예를 살펴보기 위해 기호 방정식을 만듭니다. 라이브 스크립트를 실행하여 기호 출력값을 생성합니다. 다음 단계 작업을 위한 기호 제안을 사용하여 방정식을 수치적으로 풉니다.

syms x a
eqn = (2*x^2 + a)/(x + 1) == 3
eqn = 

2x2+ax+1=3

제안 메뉴를 열려면 기호 출력값을 마우스 오른쪽 버튼으로 클릭하면 됩니다. 방정식 풀기 > 수치적으로 방정식 풀기를 선택합니다.

수치적으로 방정식 풀기 제안을 클릭하면 라이브 편집기는 vpasolve 함수를 코드 영역에 삽입합니다. 그런 다음 라이브 편집기가 현재 섹션을 자동으로 실행하여 방정식을 수치적으로 풉니다.

var2 = vpasolve(eqn,x)
var2 = 

(0.75-0.2533.0-8.0a0.2533.0-8.0a+0.75)

다음 섹션에는 기호 워크플로에서 대화형 방식으로 제안 메뉴를 사용하는 방법을 보여주는 더 많은 예가 나와 있습니다.

기호 표현식 단순화하기

지수 함수와 허수를 포함하는 기호 표현식을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms x
expr = 1i*(exp(-1i*x) - exp(1i*x))/(exp(-1i*x) + exp(1i*x))
expr = 

e-xii-exiie-xi+exi

표현식을 단순화하려면 기호 출력값을 마우스 오른쪽 버튼으로 클릭하고 표현식 재작성 및 단순화 > 표현식 단순화를 선택합니다.

라이브 편집기는 기호 표현식 단순화 라이브 작업을 삽입하고 적용하여 대화형 방식으로 기호 표현식을 단순화하거나 재배열합니다. 더 단순한 결과를 얻으려면 계산 노력을 중간으로 변경합니다.

fig5.png

계수에 대입하기 및 2차 방정식 풀기

계수 a, b, c가 있는 2차 방정식을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms a b c x
eqn = a*x^2 + b*x + c == 0
eqn = ax2+bx+c=0

방정식의 계수에 값을 대입하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 변수에 대입을 선택합니다.

라이브 편집기는 방정식의 계수와 변수에 값을 대입하기 위해 subs 함수를 삽입합니다. subs 함수에 대해, 라이브 편집기는 함수를 자동으로 실행하지 않습니다. a=3, b=2, c=0을 대입하려면 subs 함수의 두 번째 인수와 세 번째 인수를 [a,b,c][3,2,0]으로 변경합니다. 그런 다음 라이브 편집기 섹션을 실행하여 subs 함수를 적용합니다.

var3 = subs(eqn,[a,b,c],[3,2,0])
var3 = 3x2+2x=0

2차 방정식을 풀려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 해석적으로 방정식 풀기를 선택합니다.

라이브 편집기는 기호 방정식 풀기 라이브 작업을 삽입하고 적용하여 대화형 방식으로 기호 방정식의 해석적 해를 구합니다.

fig8.png

양함수 및 음함수 플로팅하기

3개의 기호 변수 x, y, z와 정현파 함수를 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms x y z
f = sin(2*x)
f = sin(2x)

정현파 함수를 플로팅하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 함수 플로팅 > 함수 플로팅을 선택합니다.

라이브 편집기는 fplot을 사용하여 정현파 함수를 플로팅합니다.

fplot(f)

다음으로, 쌍곡선을 나타내는 방정식을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

eqn = x^2 - y^2 == 1
eqn = x2-y2=1

정현파 함수를 플로팅하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 함수 플로팅 > 음함수 방정식을 2차원으로 플로팅을 선택합니다.

라이브 편집기는 fimplicit를 사용하여 쌍곡선을 플로팅합니다.

fimplicit(eqn)

다음으로, 원환면을 나타내는 기호 함수를 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

f(x,y,z) = (x^2 + y^2 + z^2 + 3^2 - 2^2)^2 - 4*3^2*(x^2+y^2)
f(x, y, z) = x2+y2+z2+52-36x2-36y2

원환면을 플로팅하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 음함수 방정식을 3차원으로 플로팅을 선택합니다.

라이브 편집기는 fimplicit3을 사용하여 원환면을 플로팅합니다.

fimplicit3(f)

행렬 함수 적용하기

3개의 기호 변수 x, y, z와 기호 행렬을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms x y z
M1 = sym([x^2 + a, x; y + 2, 3*y^2])
M1 = 

(x2+axy+23y2)

역행렬을 구하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 행렬 함수 적용 > 역행렬 구하기를 선택합니다. 행렬 함수 적용 > 역행렬 구하기 제안은 기호 출력값이 기호 행렬인 경우에만 사용할 수 있다는 점에 유의하십시오.

라이브 편집기는 inv 함수를 삽입하고 적용하여 역행렬을 구합니다.

var4 = inv(M1)
var4 = 

(-3y2σ1xσ1y+2σ1-x2+aσ1)where  σ1=-3x2y2+xy+2x-3ay2

다음으로, 1×3 기호 벡터를 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

M2 = sym([x*y*z, y^2, x + z])
M2 = (xyzy2x+z)

벡터의 야코비 행렬을 계산하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 행렬 함수 적용 > 벡터의 야코비 행렬 계산을 선택합니다. 행렬 함수 적용 > 벡터의 야코비 행렬 계산 제안은 기호 출력값이 기호 벡터인 경우에만 사용할 수 있다는 점에 유의하십시오.

라이브 편집기는 jacobian 함수를 삽입하고 적용하여 벡터의 야코비 행렬을 계산합니다.

var5 = jacobian(M2)
var5 = 

(yzxzxy02y0101)

다음으로, 또 다른 1×3 기호 벡터를 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

M3 = sym([x^2*y, 2*x, z])
M3 = (x2y2xz)

벡터의 회전을 계산하려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 행렬 함수 적용 > 벡터장의 회전 계산을 선택합니다.

라이브 편집기는 curl 함수를 삽입하고 적용하여 벡터의 회전을 계산합니다.

var6 = curl(M3)
var6 = 

(002-x2)

미분 방정식 풀기, 적분 변환 계산하기, 극점 구하기

2계 미분 방정식을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms f(x) s
eqn = diff(f,x,x) == -9*f
eqn(x) = 

2x2 f(x)=-9f(x)

미분 방정식을 풀려면 출력값을 마우스 오른쪽 버튼으로 클릭하고 미분 방정식 풀기를 선택합니다. 미분 방정식 풀기 제안은 기호 출력값이 미분 방정식인 경우에만 사용할 수 있다는 점에 유의하십시오.

라이브 편집기는 dsolve 함수를 삽입하고 적용하여 미분 방정식을 풉니다.

var7 = dsolve(eqn)
var7 = C1cos(3x)-C2sin(3x)

다음으로, 해의 라플라스 변환을 구합니다. dsolve의 출력값을 마우스 오른쪽 버튼으로 클릭하고 적분 변환 계산 > 라플라스 변환 계산을 선택합니다.

라이브 편집기는 laplace 함수를 삽입하고 적용하여 라플라스 변환을 계산합니다.

var8 = laplace(var7)
var8 = 

C1ss2+9-3C2s2+9

마지막으로, 라플라스 변환의 극점을 구합니다. 라플라스 변환의 출력값을 마우스 오른쪽 버튼으로 클릭하고 미적분 함수 적용 > 함수의 극점 계산을 선택합니다.

라이브 편집기는 poles 함수를 삽입하고 적용하여 극점을 계산합니다.

var9 = poles(var8,s)
var9 = 

(-3i3i)

단위 변환하기 및 단위의 일관성 검사하기

서로 다른 단위를 가진 두 길이의 비를 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

u = symunit;
ratio = (7*u.mi)/(420*u.ft)
ratio = 

160mi"mile - a physical unit of length."ft"foot - a physical unit of length."

단위를 미터-그램-초 단위계로 변환합니다. 출력값을 마우스 오른쪽 버튼으로 클릭하고 물리 단위 함수 적용 > 단위 변환을 선택합니다. 물리 단위 함수 적용 제안은 기호 출력값에 기호 단위가 포함되어 있는 경우에만 사용할 수 있다는 점에 유의하십시오.

라이브 편집기는 unitConvert 함수를 삽입하고 적용하여 단위를 미터-그램-초 단위계로 변환합니다.

var10 = unitConvert(ratio,[symunit('m'),symunit('g'),symunit('s')])
var10 = 88

다음으로, 이동 발사체의 x 좌표와 y 좌표를 설명하는 기호 표현식 xy를 만듭니다. xy의 단위를 길이 단위 mft와 비교하는 기호 방정식 r을 만듭니다. 다음 코드를 실행하여 기호 출력값을 생성합니다.

syms theta ts x y r
g = 9.81*u.m/u.s^2;
v = 10*u.m/u.s;
t = ts*u.s;
x = v*cos(theta)*t;
y = v*sin(theta)*t + (-g*t^2)/2;
r = [x == u.m y == u.ft]
r = 

(10tscos(θ)m"meter - a physical unit of length."=m"meter - a physical unit of length."10tssin(θ)m"meter - a physical unit of length."-981ts2200m"meter - a physical unit of length."=ft"foot - a physical unit of length.")

r에서 단위의 일관성을 검사합니다. 출력값을 마우스 오른쪽 버튼으로 클릭하고 물리 단위 함수 적용 > 단위의 일관성 검사를 선택합니다.

라이브 편집기는 checkUnits 함수를 삽입하고 적용하여 r에서 단위의 일관성과 호환성을 검사합니다.

checkUnits 함수는 필드 Consistent와 필드 Compatible이 포함된 구조체를 반환합니다. Consistent 필드는 r의 모든 항이 변환 인자가 1인 동일한 차원과 동일한 단위를 갖는 경우 논리값 1(true)을 반환합니다. Compatible 필드는 모든 항이 동일한 차원을 갖는 경우 논리값 1(true)을 반환합니다(단, 모든 항의 단위가 같을 필요는 없습니다).

var11 = checkUnits(r)
var11 = struct with fields:
    Consistent: [1 0]
    Compatible: [1 1]