Plot in matlab

Homework Statement

I want to plot into matlab the following function y(x):

when x is between 1 and 2: y=1
when x is between 2 and 3: y=2
.
.
.
when x is between 9 and 10: y=9
etc

I have tried a code. but this code only plots the curve for the final case (so y=9 when x is between 9 and 10).

I know that i can join 2 points like this:
eg
plot([1 2],[1 1],[2 3],[2 2])
However, it will be tedious if i was to do this 10 times (or even more).

The Attempt at a Solution

I have tried the following code:

for i =1:10
x(i) = i
end
for j=1:9
if j==i || j==i+1
y(j)=i
end
plot([x(j) x(j+1)],[y(j) y(j)])
end

Any help or ideas will be very much appreciated.
Thank you

Related Engineering and Comp Sci Homework Help News on Phys.org
Mark44
Mentor

Homework Statement

I want to plot into matlab the following function y(x):

when x is between 1 and 2: y=1
when x is between 2 and 3: y=2
.
.
.
when x is between 9 and 10: y=9
etc

I have tried a code. but this code only plots the curve for the final case (so y=9 when x is between 9 and 10).

I know that i can join 2 points like this:
eg
plot([1 2],[1 1],[2 3],[2 2])
However, it will be tedious if i was to do this 10 times (or even more).

The Attempt at a Solution

I have tried the following code:

for i =1:10
x(i) = i
end
for j=1:9
if j==i || j==i+1
y(j)=i
end
plot([x(j) x(j+1)],[y(j) y(j)])
end

Any help or ideas will be very much appreciated.
Thank you
Hi sarah_87,
There's a problem with this definition:
when x is between 1 and 2: y=1
when x is between 2 and 3: y=2
.
.
.
when x is between 9 and 10: y=9
What happens when x equals one of the endpoints, say x = 2?

The first line sets y to 1, but the next line sets y to 2.

I'm going to assume that this is what you mean:
when x >= 1 && x < 2, y=1
when x >= 2 && x < 3, y=2
.
.
when x >= 9 && x < 10, y=9

See if this does what you want.
Code:
for i =1:10
x(i) = i
end

for j = 1:9
for i = 1:10
if j >= i && j < (i + 1)
y(j)=i
end
end
end
plot(x, y)
%%plot([x(j) x(j+1)],[y(j) y(j)])
end