Creating file names for save command
Mostrar comentarios más antiguos
I have the following code:
file_dir = 'C:\Users\mydir';
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,'sps_',datestamp,'.mat');
save(file_name);
which returns the following error:
Error using save
Argument must contain a character vector.
Not sure how to fix this?
2 comentarios
Paul Nel
el 6 de Oct. de 2016
Nagabhushan SN
el 25 de Ag. de 2018
Same error:
save('temp.mat', data);
Error using save
Must be a string scalar or character vector.
Respuestas (2)
You have to put some data in the file....
file_dir = pwd;
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,filesep,'sps_',datestamp,'.mat');
data = rand(10,10) ;
save(file_name,'data');
5 comentarios
Paul Nel
el 6 de Oct. de 2016
KSSV
el 6 de Oct. de 2016
Yes it is a warning....
Try:
datestamp=char(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
instead of
datestamp=string(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
Paul Nel
el 6 de Oct. de 2016
KSSV
el 6 de Oct. de 2016
How about replacing:
file_name=strcat(file_dir,filesep,'sps_',datestamp,'.mat');
with
file_name=char(strcat(file_dir,filesep,'sps_',datestamp,'.mat'));
Jan
el 6 de Oct. de 2016
Prefer fullfile to join path and file names.
file_dir = 'C:\Users\mydir';
datestamp=char(datetime('now','TimeZone','local','Format','yyyyMMdd_HHmmss'));
file_name=strcat(file_dir,'sps_',datestamp,'.mat');
>> whos file_name
Name Size Bytes Class Attributes
file_name 1x37 74 char
This works for me.
Categorías
Más información sobre String Parsing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!