subs
기호 대입
구문
설명
기호 스칼라 변수와 기호 함수에 대입하기
는 모든 snew
= subs(s
,old
,new
)old
를 new
로 대체한 s
의 복사본을 반환한 다음 s
를 계산합니다. 여기서 s
는 기호 스칼라 변수나 기호 함수로 구성된 표현식이고 old
는 대체되어야 하는 기호 스칼라 변수나 기호 함수를 지정합니다.
old
및new
가 모두 같은 크기의 셀형 배열 또는 벡터인 경우subs
는old
의 각 요소를 그에 대응하는new
요소로 대체합니다.old
가 스칼라이고new
가 벡터 또는 행렬인 경우subs(s,old,new)
는 모든 연산을 요소별로 수행하여s
의 모든old
요소를new
로 대체합니다.s
의 모든 상수항은 해당 상수에 모두 1로 구성된 벡터 또는 행렬을 곱한 값으로 대체됩니다.
는 snew
= subs(s
,new
)s
의 모든 디폴트 기호 스칼라 변수를 new
로 대체한 s
의 복사본을 반환한 다음 s
를 계산합니다. 디폴트 변수는 symvar(s,1)
에 의해 정의됩니다.
기호 행렬 변수와 기호 함수에 대입하기
예제
입력 인수
팁
subs(s,__)
는s
를 수정하지 않습니다.s
를 수정하려면s = subs(s,__)
를 사용하십시오.s
가 일변량 다항식이고new
가 숫자형 행렬인 경우polyvalm(sym2poly(s),new)
를 사용하여s
를 행렬로 계산하십시오. 모든 상수항은 해당 상수에 단위 행렬을 곱한 값으로 대체됩니다.R2022b부터 도함수 또는
diff
함수를 포함하는 기호 대입은 대입할 기호 객체의 입력 순서를 따릅니다. 예를 들어, 다음 코드는diff
함수를 포함하는 기호 대입을 수행합니다.R2022b 이전에는 코드가 다음 출력값을 반환합니다.syms m k x(t) syms x_t x_t_ddot eqSHM = m*diff(x(t),t,2) == -k*x(t); eqSHMnew = subs(eqSHM,[x(t) diff(x(t),t,2)],[x_t x_t_ddot])
eqSHMnew = m*x_t_ddot == -k*x_t
R2022b부터는 코드가 다음 출력값을 반환합니다.
출력값의 차이가 있는 이유는 이제eqSHMnew = 0 == -k*x_t
subs
가x(t)
에x_t
를 먼저 대입해서diff(x_t,t,2)
가 되고, 그래서 결과가0
이 되기 때문입니다. 이전 릴리스와 같은 대입 결과를 얻으려면 먼저diff(x(t),t,2)
항을 지정하여x(t)
항보다 먼저 대입되도록 하십시오.eqSHMnew = subs(eqSHM,[diff(x(t),t,2) x(t)],[x_t_ddot x_t])
eqSHMnew = m*x_t_ddot == -k*x_t