how can i use for loop to solve the below problem

Add an if statement to the for loop body. If speed(c) is less than or equal to 0, create a loglog plot of s against lambda using a dashed line (--).
After the if statement, add the command hold on so that only one plot is created.
the below didnt work for me:
if speed(c) <= 0
loglog(lambda,s,"--")
end
hold on
end

3 Comments

Chirstopher - please clarify what you mean by the below didn't work for me. The code seems correct (unless you should be plotting loglog(s,lambda,'--')?) so please post any error messages or discuss why it isn't doing what you expect.
Here is the error message as attached.
for c = 1:7
s = spectra(:,c)
if speed(c) <=0
loglog(lambda,s,"--")
end
hold on
end

Sign in to comment.

 Accepted Answer

You have used an extra end. Delete the end in the last line. I think you must use hold on before your for loop and place the if inside the for loop.

More Answers (2)

Add an else statement. If speed(v) is greater than 0, create a plot of s against lambda using a line width of 3.
After the for loop, enter hold off.

1 Comment

for v = 1:7
s = spectra(:,v)
if speed(v) <=0
plot(lambda,s,"--")
else speed(v) >0
plot(lambda,s,LineWidth=3)
end
hold on
end
hold off

Sign in to comment.

for v = 1:7 s = spectra(:,v) if speed(v) <=0 plot(lambda,s,"--") else speed(v) >0 plot(lambda,s,LineWidth=3) end hold on end hold off

Products

Release

R2020a

Community Treasure Hunt

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

Start Hunting!