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.
6 answers
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 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...
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.
<_< 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