Thanks MathMate. Print plotting sounds awful O_O. What you suggested was correct and this code worked

disp('Problem 13.9')
x=[-2*pi:.00001*pi:2*pi];
a=0;
y=sin(x-a);
g=plot(x,y);
title(sprintf('sin(x-%.2f)\n',a))
grid on;
set(g,'EraseMode','xor')
while a<=8*pi
a=a+.1*pi;
y=sin(x-a);
plot(x,y)
title(fprintf('sin(x-%.2f)\n',a))
grid on;
drawnow
end

I have another question though that I seem to be struggling with.

Create an animation of the following:

Let x vary form -2pi to +2pi
Let y=sin(x)
Let z=sin(x-a)cos(y-a)

Let a be the animation variable.
Remember that you'll need to mesh x and y to create two-dimensional matrices; use the resulting arrays to find z.

Here's my attempt at a solution.

x=-2*pi:pi/50:2*pi;
y=sin(x);
[X,Y]=meshgrid(x,y);
z=sin(X)*cos(Y);
h=surf(z);
axis tight
set(gca,'nextplot','replacechildren');
shading interp
colormap(jet)
for a=0:pi/100:8*pi
z=sin(X-a)*cos(Y-a);
set(h,'zdata',z);
drawnow
end

When I try to run it the axes are colored for like a tenth of a second and then it just turns to white. I don't know exactly what I'm doing wrong.

I had a quick look at the code, and I suggest the following changes (just a guess).

I believe the code has worked as expected, but the duration of the animation is only about 1/10th of a second.
To test the hypothesis, change
for a=0:pi/100:8*pi
to
for a=0:pi/1000:8*pi
to make 10 times more frames. If it stays for about a second, then it is the problem.

The other "problem" that it stays white at the end is probably the endpoint (8π) puts everything to zero, so it is/may be coloured white.
Try changing the endpoint to, say
8.5π or 8.25π and see if it makes a difference.

Let me know how it goes.

I tried both and both results leave me with the same result, It just flashes real quick and then turns white... I even tried a=0:pi/1000000000:8*pi, it stays for a little bit longer but then turns white....

I think it's an issue with something else... what I'm not exactly sure as it's strange that something does appear but then quickly disappears...

A couple of things you could try:

1. put
refreshdata
before "drawnow".
Hopefully this will update every frame of the image.
2. put a finer grid, such as
x=-2*pi:pi/500:2*pi;
instead of 50.

Sorry that I cannot be more definite because I don't have access to Matlab, especially the plotting part.

Same thing. I wounder if I'm suppose to be using the surfz function and not some other 3 dimensional plotting function?

got it

<_< forgot the dot and got rid of the axis tight

disp('Problem 13.11')
x=-2*pi:pi/50:2*pi;
y=sin(x);
[X,Y]=meshgrid(x,y);
z=sin(X)*cos(Y);
h=surf(z);
set(gca,'nextplot','replacechildren');
shading interp
colormap(jet)
for a=0:pi/100:8.25*pi
z=sin(X-a).*cos(Y-a);
set(h,'zdata',z);
drawnow
end

Great! I missed that too (the dot).

In your code, you are setting the colormap to 'jet' with the line `colormap(jet)`, which is causing the axes to be colored. However, when you update the data in the surface plot with `set(h,'zdata',z)`, it resets the colormap to its default value, resulting in the axes turning white.

To fix this issue, you can add the line `colormap(jet)` inside the for loop, right before `drawnow`. This ensures that the colormap is set to 'jet' for each frame of the animation. Here's the modified code:

```matlab
x = -2*pi:pi/50:2*pi;
y = sin(x);
[X, Y] = meshgrid(x, y);

z = sin(X) * cos(Y);
h = surf(z);
axis tight
set(gca, 'nextplot', 'replacechildren');
shading interp

for a = 0:pi/100:8*pi
z = sin(X - a) * cos(Y - a);
set(h, 'zdata', z);
colormap(jet) % add this line
drawnow
end
```

With this modification, the colormap will be preserved during the entire animation, and you should see the desired result.