Lire un ensemble de fichier de données puis plotter
Dear all,
Je vous prie de jeter un coup d'oeil a ceci:
Je dispose par exemple des fichiers:
\Repertoire1\fichier_1
\Repertoire2\fichier_2
\Repertoire3\fichier_3
.....
\Repertoiren\fichier_n
Le format de mes fichiers est tel que le peux faire:
load fichier_i et contour (fichier_i) sans problème.
Ma question est de savoir comment lire successivement fichier_i et
sauvegarder chacune des images (n pouvant être assez grand).
quelque chose de la forme
Code:
1 2 3 4 5 6 7 8 9
| nframes = n; % number of frames in the movie
Frames = moviein(nframes); % initialize the matrix 'Frames'
for j=1:n
% pouvoir charger fichier_i
% faire contour (fichier_i)
% sauvegarder l'image
F(:,j)=getframe
end
movie(Frames) %generer une animation. |
ou toute autre proposition sera la bienvenue.
Merci davance
Jessica
lire une serie de fichiers et plotter (Contour)
Chèr(e) Loique,
je te remercie de ta reponse.
dans ton code, sauf mauvaise interpretation de ma part, cette section
Code:
if(strcmp(Repertoire(i).name,'NomDeFichierVoulu',n)
devrait comparer la chaine de caractere Repertoire(i).name et NomDeFichierVoulu.
Je suis un peu plus confuse car je ne comprends pas comment le code fera automatiquement la lecture successive de fichier1 (ou data1), fichier2 (ou data2) , et fera successivement contour(data(i))
Merci de rejetter un coup d'oeil.
Jessica
lire une serie de fichiers et plotter (Contour)
Dear all,
A present, mon progamme suivant marche:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| clear all
a=20;
reruns=1; % number of times movie is to play
fps=1; % frames per second
nframes = 300; % number of frames in the movie
Frames = moviein(nframes)
for i=1:300
(eval(['load data',num2str(i)]));
B= (eval(['data',num2str(i)]));
A=size(B);
x=linspace(-a,a,A(1));
y=linspace(-a,a,A(2));
contour(y,x,B) ;
F(:,131)=getframe
movie(Frames,reruns,fps)
end |
Question1:
quelle commande matlab utiliser pour sauvegarder la video en un format que je pourrai par la suite inclure dans un fichier pdf ou ppt?
Question 2:
mes données se trouvent en fait dans des repertoires du type:
Re.0000000\data.y
Re.0000100\data.y
Re.0000200\data.y
Re.0000300\data.y
...
...
Re.0035000\data.y
Pour faire tourner mon programme ci-dessus, Je suis obligee de faire
cp -i Re.0000000\data.y NEWFILE\data1
cp -i Re.0000100\data.y NEWFILE\data2
cp -i Re.0000200\data.y NEWFILE\data3
.....
cp -i Re.0035000\data.y NEWFILE\data351
Soit, 351 fois pour data.y ; data.x et data.z et il y'a d'autre types de data.
Quelqu'un(e) pourra t'il (elle) m'aider avec un boucle pour contourner cette difficulté?
Merci davance
Jessica
lire une serie de fichiers et plotter (Contour)
Je te remercie de ta reponse.
Peux tu stp, mieux me preciser comment marchera cette partie?
Code:
1 2 3
| fichier=fullfile(sprintf('Re.00%03d00',i),'data.y');
S=load(fichier);
B=S.(???);%quel est le nom de la variable par contre ici ? |
Car elle me permettra un enorme gain de temps.
STP, as tu une idée pour sauvegarder la video?
Merci d'avance
Jessica
lire une serie de fichiers et plotter (Contour)
J'obtiens l'erreur suivante
Citation:
Attempt to reference field of non-structure
array.
Error in ==> at
B=S.(['data',num2str(i)]);
Merci de rejetter un coup d'oeil
lire une serie de fichiers et plotter (Contour)
merci de votre reponse.
En effet data.x est une matrice pour les courbes en 3D.
Si je fais contour(data.x), j'obtiens le graphe voulu.
Donc le fichier j'ai simplement besoin de load (data.x) et faire contour.
c'est la matrice densité (carré de la fonction d'onde).
data.x = rho(y,z).
Merci une fois de plus de m'eclaircir.
Jessica