2017-11-01 10 views
0

세 개의 변수를 가진 기호 함수를 만들고 싶습니다. x은 벡터이고 sm은 스칼라입니다. 그런 다음 ms을 0과 1, 그리고 x을 사용하여 간격을 [-10, 10]으로하여 함수를 플롯하려고합니다. 나는 다음을 시도했다 :MATLAB의 기호 함수에서 기호 변수를 평가하고 플롯하는 방법은 무엇입니까?

syms x m s 
%x= 
y(x)=((1/(s*sqrt(2*pi)))*exp(-1/2*((x-m)/s)^2)) 
m=0 
s=1 
yx=subs(y) 
y 
yx 
fplot(linspace(-10,10),yx) 

음모가 이상하게 보인다. 내 실수는 어디 갔지?

답변

1

fplot으로 전화하는 데 잘못된 구문을 사용하고 있습니다. 그냥 이렇게 부르면됩니다 :

fplot(yx); 

이것은 기본 x 범위 인 [-5 5]을 사용합니다. 당신이 X의 범위를 변경하려면,과 같이, fplot에 호출 2 요소 벡터 인수를 추가

fplot(yx, [-10 10]); % Plots over the range [-10 10] 

첫 번째 인수로 linspace(...)을 넣었을 때, MATLAB은 '당신처럼 그것을 해석하는 표시 두 인수 호출 구문 fplot(funx, funy)을 사용하려고 시도하는데, 두 입력이 모두 parametric functions이 될 것으로 예상합니다.

+0

와우! 하지만 왜 함수가 그 간격을 스스로 선택 했는가? –

+2

@MouadSama : 문서를 보셨습니까? 그것은'fplot'에 의해 사용 된 디폴트 x 범위가'[-5 5]'라고 분명하게 말합니다. – gnovice

+0

대단히 감사합니다. 내 간격이 -10,10 –