Plot for different conditions of function

11 views (last 30 days)
Hi everyone,
i have the task that I have to make plot for different conditions y(x) for different value x.
The following code I have is below. If is correct.
But plot did not work. I thought that missing hold on or something like that but also did not work.
clear all
close all
clc
x=rand
if x<6
y=2;
% fprintf ('%.2f, %d\n',x,y)
elseif x>=6 & x<20
y=x-4;
% fprintf ('%.2f, %.2f\n',x,y)
elseif x>=20
y=36-x;
% fprintf ('%.2f, %.2f\n',x,y)
end
fprintf ('%.2f, %.2f\n',x,y)
for x=-30:1:30
if x<6
y1=2;
plot(x,y1)
elseif x>=6 & x<20
y2=x-4;
plot(x,y2)
elseif x>=20
y3=36-x;
plot(x,y3)
end
end
Thank you!

Accepted Answer

Rik
Rik on 14 Aug 2020
Edited: Rik on 14 Aug 2020
Your code is plotting scalars. If you want to see a line you should put in multiple values at the same time.
for x=-30:1:30
if x<6
y1=2;
plot(x,y1,'.')
elseif x>=6 & x<20
y2=x-4;
plot(x,y2,'.')
elseif x>=20
y3=36-x;
plot(x,y3,'.')
end
end
A better strategy would be to create the entire array at one, and then plot it as a vector.
x=-30:30;
y=NaN(size(x));
L=x<6;
y(L)=2;
L=x>=6 & x<20;
y(L)=x(L)-4;
L=x>=20;
y(L)=36-x(L);
plot(x,y)
Also, you shouldn't use clc,clear all,close all. You aren't printing anything to the command window, you should only use clear all exactly once in your entire code base, and you don't want to close all figures without knowing they are related to your code.
  2 Comments
Sara Boznik
Sara Boznik on 14 Aug 2020
Thank you so much, it works.
Actually that is for school and they thaught us that we have to write clear all, close all, clc everytime.
Rik
Rik on 14 Aug 2020
That is a bad habit. If your instructor doesn't agree, feel free to refer them to me (or many others on this site for that matter).
If you don't understand what these commands do you shouldn't be using them. There is a valid case to make to start instructional scripts with clc,clear,close, maybe even close all (e.g. the demo that Image Analyst often adapts), but especially clear all is an indication that the linter is ignored, a bad habit.
It is much better to teach why and when you should use these commands than simply require them for every single script.

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!