Plot, if and elseif statement
10 次查看(过去 30 天)
显示 更早的评论
Can some1 please help me with this.
Plot function f(x) over x=0:pi/10:2*pi
f(x)=sin(x) if (x<=pi)
f(x)=cos(x)+1 if (x>pi)
This is what I started so far and don't know what to do next.
x=0:pi/10:2*pi;
if x<=pi
xx=sin(x)
elseif x>pi
yy=cos(x)+1
end
0 个评论
回答(1 个)
Matt Fig
2011-4-6
IF statements do not pick out elements of an array as you are thinking they do. Use logical indexing.
x = 0:pi/10:2*pi;
y = zeros(size(x));
idx = x<=pi;
y(idx) = sin(x(idx));
y(~idx) = cos(x(~idx))+1;
plot(x,y)
If you really want to use an IF statement, you will need to look element-by-element.
y = zeros(size(x));
for ii = 1:length(x)
if x(ii)<=pi
y(ii) = sin(x(ii));
else
% ... fill it in.
end
end
1 个评论
Matt Fig
2011-4-6
Should this be a FAQ? It seems like the
if x<3,...
construction for vectors is coming up all the time recently....
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!