2016-11-20 17 views
0

아래의 방정식을 Matlab에 플로팅하는 법. 이 방정식에는 두 가지 요소가 있습니다.특정 두 개의 입력 요소를 플롯합니다.

k는 (-1,1)의 스칼라 숫자입니다.

그래서 x 값이 주어지면 double 값 (-infinity, + infinity)이 부여됩니다.

이 기능의 그래픽을 플롯해야합니다.

if x>0    plot (1-k)x 
else (case x<=0) plot(1+k)x 
+0

가능한 중복 [matlab에서 세 가지 분기 함수의 그래프를 만드는 방법] (http://stackoverflow.com/questions/30790802/how-to-make-a-graph-of-a-three- 분기 기능 -에서 - matlab) –

답변

0

희망이

k = 3 - randi(3); %random number between -1-0-1 (thanks op) 
x = -1e6:1e6; %a very long vecot 
y = zeros(1,length(x)); %prelocate y 
ind = find(x); %find the indeces where x>0 
y(ind) = (1- k) * x(ind); 
ind = find (x<=0); 
y(ind) = (1+k) * x(ind); 
plot(x,y);%plot 
+0

안녕하세요 좋은 @ Roenen 코헨,하지만 [-1,1]에서 부동 가치에 대한 귀하의 버전을 사용하여, 잘 작동하지 않습니다, 당신은 2x2 ans 벡터를 만들고 그것을 사용하여 오류가 발생합니다 . 정수 상태와이 경우 k = {- 1,0,1}을 시뮬레이트하려면 randi (3) -2를 사용하고 있습니다. 도와 주셔서 감사합니다! ANS = 0.5315 -0.4685 -0.4685 0.5315 >> (랜드 * (- 1))^(랜디 (1,2)) – Igoto

0

나는 익명 함수를 좋아하는 데 도움이 - 가독성을 향상시킬 수 있습니다.

f = @(x,k) (1-k).*x.*(x>0) + (1+k).*x.*(x<=0) 
plot(x,f(x,k)) 

다른 경우를 처리하기 위해 (x> 0) 및 (x < = 0) 사용에 유의하십시오.

+0

내가 매트랩 음모 코드를 사용할 수 있을까요? 나는 @를 사용하여이 형식을 알지 못한다. 파라 메트릭 방식인가? – Igoto

+0

https://se.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html – vindarmagnus

+0

가능합니다. x와 k를 먼저 정의하십시오. – vindarmagnus