Bonjour,
J'ai un petit problème au niveau d'une vidéo. Je veux faire une petite vidéo qui représente un champ électrique qui vient de la superposition de deux ondes.
J'utilise le code suivant :
Le problème c'est que dans la vidéo, il n'affiche que les valeurs extrêmes du vecteur donc pour pour cos(0.05t) = -1 ou 1. Sans m'afficher les valeurs intermédiaires, alors que j'ai utilisé le même code pour un autre champ électrique et ça marchait parfaitement on voyait les vecteurs tourner etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 R = 2.4; x = [-2.4:0.24:2.4]; z = [0:0.5:3]; kc = 2.4/R; [X,Z] = meshgrid(x,z); figure('Renderer','zbuffer'); set(gca,'NextPlot','replaceChildren'); vid = VideoWriter('prebuncher'); vid.FrameRate = 60; vid.Quality = 100; open(vid); for t=0:3*125.6637 Ez = besselj(0,X).*1000*cos(0.05*t).*cos(0*Z); Ex = besselj(0,X).*cos(0.05*t).*sin(0*Z); quiver(Z,X,Ez,Ex); title('Electric field in the cylindrical waveguide'); xlabel('Z') zlabel('X') ylim([-R R]) xlim([-1 4]) colormap hsv frame = getframe; writeVideo(vid,frame); hold off end close(vid);
J'ai même fait le test d'enlever le "hold off" à la fin et du coup on peut voir les vecteurs qu'il calcule pour chaque t car il change de couleur à chaque plot et on voit qu'il calcule exactement les mêmes à chaque fois : pour cos(0.05t) = 1 ou -1
J'espère que j'explique bien mon problème
Merci d'avance
Partager