MATLAB: I need some help with plotting a scatter plot in a for loop

for loopiterationMATLABplotplotting

I am given z = (sin(xy))^2, x and y. z is used for to represent color coding. I need to create a 2-D x-y scatter plot of z = (sin(xy))^2. I am required to plot each point using the for loop. I can get it to plot x(i), y(i) no problem. That creates a linear relationship.
The graph I am trying to make does x(1),y(1) x(1),y(2) up to x(1),y(end) and the same idea for y: x(1),y(1) x(2),y(1) up to x(end),y(1). That way it populates the entire plane and creates a color pattern. I'm not sure how to do that.
if true
x = -3:0.1:3;
y = -3:0.1:3;
z = (sin(x.*y)).^2;
hold on
for i = 1:length(x)
if z(i) < 0.1
plot(x(z),y(z),'sb')
elseif z(i) > 0.1 && z(i) < 0.5
plot(x(i),y(i),'sc')
elseif z(i) > 0.5 && z(i) < 0.75
plot(x(i),y(i),'sg')
elseif z(i) > 0.75 && z(i) < 0.95
plot(x(i),y(i),'sr')
else
plot(x(i),y(i),'sk')
end
xlim([-3 3])
ylim([-3 3])
end
hold off
end

Best Answer

The function kevin, which I think implements "The graph I am trying to make does x(1),y(1) x(1),y(2) up to x(1),y(end) and the same idea for y: x(1),y(1) x(2),y(1) up to x(end),y(1).", creates
&nbsp
where
function kevin
x = -3:0.1:3;
y = -3:0.1:3;
z = (sin(x.*y)).^2;
hold on
for jj = 1:length(x)
if z(jj) < 0.1
plot(x(jj),y,'sb')
elseif z(jj) > 0.1 && z(jj) < 0.5
plot(x(jj),y,'sc')
elseif z(jj) > 0.5 && z(jj) < 0.75
plot(x(jj),y,'sg')
elseif z(jj) > 0.75 && z(jj) < 0.95
plot(x(jj),y,'sr')
else
plot(x(jj),y,'sk')
end
xlim([-3 3])
ylim([-3 3])
end
hold off
end
Functions are easier than scripts to debug and use. And they don't clutter the base workspace.