problem with overwritten data when auto saving

1 visualización (últimos 30 días)
Lizan
Lizan el 16 de Oct. de 2014
Respondida: Matt Tearle el 16 de Oct. de 2014
I want to auto save certain data based on where they are located in the computer. For example,
myFolder = '/Users/user/Documents/MATLAB - my measurements/16.10.2014/785/happy/nr/';
I want to save the data in a certain directory;
savdir = '/Users/user/Documents/MATLAB - my measurements/results/';
So I would write
diary(fullfile(savdir,['file_',mfilename,myFolder(53:62),'_diary.txt']))
diary on
-- some code
diary off
save(fullfile(savdir,['file_',mfilename,myFolder(53:62),'_data.mat']));
savefig(h,fullfile(savdir,['file_',mfilename,myFolder(53:62),'_plots.fig']));
close(h)
But I have several folders with data in folder happy, called nr, nr1, nr2 etc or my, my1, my2 etc.
So saving data from folder nr and then nr2 will overwrite the previously data with current code. Is there a way to not overwrite?
I guess I would write for
myFolder = '/Users/user/Documents/MATLAB - my measurements/16.10.2014/785/happy/nr2/';
myFolder = '/Users/user/Documents/MATLAB - my measurements/16.10.2014/785/happy/nr/';
for example
save(fullfile(savdir,['file_',mfilename,myFolder(53:62),myFolder(end-4:end-1),'_data.mat']));
but as you can see above this is not always the case that 'nr' has a number in front of it.
Any suggestions?
  1 comentario
Lizan
Lizan el 16 de Oct. de 2014
Just like to comment that MATLAB seem to have problems with "/" sign in this.

Iniciar sesión para comentar.

Respuesta aceptada

Matt Tearle
Matt Tearle el 16 de Oct. de 2014
I'm not entirely clear on what the crux of the problem is. Are you trying to loop through the directories (nr, nr2, nr3) and want to create the directory name programmatically?
It seems like ls (and cellstr) should help:
nrDirs = cellstr(ls([pathstuff,'nr*']));
Then use that
save(fullfile(...,nrDirs{k},'_data.mat']))
Also, regarding your comment about /, use filesep to get the correct file system separator for your OS (/ or \). If you don't want to mess with the hardcoded paths you've already made, you could even do
myFolder = regexprep(myFolder,'/',filesep); % replace all /s with either / or \

Más respuestas (0)

Categorías

Más información sobre File Name Construction en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by