2017-09-25 5 views
0

J'ai deux questions similaires mais dans un but différent.Matlab. Ecrire un fichier texte ou le créer s'il n'existe pas. Sauvegarder les chiffres dans le répertoire ou le créer s'il n'existe pas

1) Comment puis-je dire à matlab d'écrire sur un fichier texte et s'il n'existe pas, de le créer? Le code de base pour améliorer serait quelque chose comme:

fileID = fopen('results.txt','w'); 
fprintf(fileID, 'Name\t\t\t\t\t\t\t\t\t%%variation\t\tSteady-state\n'); 
fclose(fileID); 

1) Même chose, mais quand je sauve les chiffres, je veux les enregistrer dans un sous-répertoire de celui qui travaille, mais si elle n'existe pas ça devrait le créer. Le code de base pour améliorer serait quelque chose comme:

fig=figure; set(fig, 'Visible', 'off'); 
plot(...); xlabel(...); ylabel(...); legend(...); 
saveas(fig,s3) 

où s3 est

s3 = char(strcat(s1(1),'.png')); %concatenate .png and convert to string 

Comment puis-je dire à enregistrer dans un répertoire différent?

Merci beaucoup

Répondre

0

Votre premier code fonctionne très bien si le fichier n'existe pas, et le contenu fuir si le fichier existe. Je suppose que le premier problème est que vous souhaitez conserver le contenu si le fichier existe déjà, alors:

if exist('results.txt')==2 
    fileID = fopen('results.txt','a'); % open exist file and append contents 
else 
    fileID = fopen('results.txt','w'); % create file and write to it 
end 

Pour la deuxième question:

if exist('SubDir')~=7 % if there is not a sub-directory named "SubDir", make it 
    mkdir('SubDir'); 
end 
saveas(fig,fullfile('SubDir',s3)) 
+0

WOW! Merci beaucoup. Maintenant que cela fonctionne, j'ai seulement besoin de créer une interface à partir de laquelle l'utilisateur peut choisir le chemin ^^ '. Ça va me prendre du temps. Merci encore –

+0

Si vous voulez laisser l'utilisateur choisir le chemin, utilisez 'uiegtdir'- https://www.mathworks.com/help/matlab/ref/uigetdir.html – Adiel