Not sure why my code result in different graphics

So I have done a piece of code that is supposed to make two equal graphics, just by using different methods to do so. However, end result doesnt seem to go as planned. Can anyone see what is wrong here? How can I fix it?
x = -pi : pi/500 : pi;
for i = -pi:pi/500:pi
if (x > 0)
y = sin(x).^2 + (1+x)./(1+exp(x));
else
y = (1+x.^2).^(1.0/3.0);
end
end
figure
plot(x,y);
grid on;
hold on;
y = ((1+x.^2).^(1.0/3.0)).*(x<=0) + (sin(x).^2 + (1+x)./(1+exp(x))).*(x>0);
plot(x,y);

 채택된 답변

Bhaskar R
Bhaskar R 2019년 10월 30일
You have made for loop mistake and indexing in your code, correct one is
x = -pi : pi/500 : pi;
y =zeros(1, length(x)); % initialize legth of y
for i = 1:length(y) % you gave x sequence over instead of indexing sequence
if (x(i) > 0)
y(i) = sin(x(i)).^2 + (1+x(i))./(1+exp(x(i)));
else
y(i) = (1+x(i).^2).^(1.0/3.0);
end
end
figure
plot(x,y);
grid on;
hold on;
y = ((1+x.^2).^(1.0/3.0)).*(x<=0) + (sin(x).^2 + (1+x)./(1+exp(x))).*(x>0);
plot(x,y);

추가 답변 (0개)

카테고리

태그

질문:

2019년 10월 30일

답변:

2019년 10월 30일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by