MATLAB: Last else if graph not plotting

else if matlabMATLAB

if i==3600
hold on;
plot(x,C);
elseif i==10800
plot(x,C);
elseif i==36000
plot(x,C);
elseif i==36300
plot(x,C);
hold off;
end
In the above program, if i varies from 0 to 36300 or more then last plot is not happening and if I add one more else if i ==36600 then that will not get plot.

Best Answer

I tried the following:
% Clear the command window and close the figures
clc
close all
% Make a color vector for plots
col_vec = lines(4);
% Start a counter for the legend entry
cnt = 1;
% Loop over the entries
for i = 1 : 1 : 36300
% Make random data
x = 0:1:10;
C = rand(size(x));
% If/else statements - added some extra code for plotting clarity
if i==3600
hold on;
plot(x,C,'-o','MarkerFaceColor',col_vec(cnt,:))
leg{cnt} = 'first';
cnt = cnt+1;
elseif i==10800
plot(x,C,'-d','MarkerFaceColor',col_vec(cnt,:))
leg{cnt} = 'second';
cnt = cnt+1;
elseif i==36000
plot(x,C,'-s','MarkerFaceColor',col_vec(cnt,:))
leg{cnt} = 'third';
cnt = cnt+1;
elseif i==36300
plot(x,C,'-^','MarkerFaceColor',col_vec(cnt,:))
leg{cnt} = 'fourth';
hold off;
end
end
% Annotate the plot
legend(leg,'location','northeast')
axis([0 10 0 1.1])
grid on
xlabel('x')
ylabel('C')
When I do that, I get four lines with markers
However, as the other commenter said, placing hold on and hold off ahead of the if/else statements is more robust, because if the condition is not met, you might not get the right hold conditions.