MATLAB Answers

Save workspace and move file

12 views (last 30 days)
Clément P
Clément P on 5 Apr 2016
Commented: Orion on 5 Apr 2016
Hi everyone,
I have an issue with saving variables. I want to save my variables in a .mat file in a specified folder. Here is my code :
if get(handles.box2,'Value')==1
pexp=mise_en_structure(handlesGUI3);
save(filename,'pexp');
end
movefile('filename','../Données sauvegardées');
guidata(handles.h,handles);
I have this error message :
Error using movefile
No matching files were found.
Error in GUI_Sauvegarder>pb_Callback (line 43)
movefile(filename,'../Données sauvegardées');
Error using waitfor
Error while evaluating uicontrol Callback
Do you have any idea how to solve this? (Except pause(n))
filename is defined like this : (where SpecID is a string)
filename=handles.essais.SpecID{1};
Thanks. Clément

  0 Comments

Sign in to comment.

Accepted Answer

Orion
Orion on 5 Apr 2016
One way to do it .
% name of all files with different extension : toto.m, toto.mat,...
filename = 'toto';
allfiles = dir(pwd);
FilesTomove = {allfiles(strncmp({allfiles.name},filename,length(filename))).name};
for i = 1:length(FilesTomove)
movefile(FilesTomove{i},'../Données sauvegardées');
end
It may be not the "easier" method :)

  3 Comments

Orion
Orion on 5 Apr 2016
an other way (easier, don't know why I haven't think of that before):
filename = 'toto';
movefile([filename '.*'],'../Données sauvegardées');
Clément P
Clément P on 5 Apr 2016
Ahah yes I found that one too after some research. But I didn't put the '.'.
Here is the code :
filename=handles.essais.SpecID{1}
%save in different extensions depending on user's choices
filename=[filename '*'];
movefile(filename,'./Données sauvegardées');
Thanks!
Orion
Orion on 5 Apr 2016
Be careful, it's not the same.
with '.*', you will get all the files with any kind of extension. toto.m, toto.mat, toto.xls
but with '*' only, you 'll get all the files that begin with your string : toto.m, toto.mat,totofhzerufhzeri.mat,toto2.m,...

Sign in to comment.

More Answers (2)

Orion
Orion on 5 Apr 2016
Hi,
you try to move a file named filename
movefile('filename','../Données sauvegardées');
you need something like :
movefile(filename,'../Données sauvegardées');

  1 Comment

Clément P
Clément P on 5 Apr 2016
Hi,
thanks for answering.
I tried this too. I get the same error message. :/

Sign in to comment.


Orion
Orion on 5 Apr 2016
I guess it misses the .mat extension in the variable filename.
You need to add it :
change
filename=handles.essais.SpecID{1};
by
filename=[handles.essais.SpecID{1} '.mat'];

  1 Comment

Clément P
Clément P on 5 Apr 2016
Yes i just found out that too. Is there a way to get all files named 'filename' without taking into account the extension?
I have multiple extensions possible, depending on user's choices.

Sign in to comment.

Sign in to answer this question.