Creating file names for save command
Show older comments
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 Comments
Paul Nel
on 6 Oct 2016
Nagabhushan SN
on 25 Aug 2018
Same error:
save('temp.mat', data);
Error using save
Must be a string scalar or character vector.
Answers (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 Comments
Paul Nel
on 6 Oct 2016
KSSV
on 6 Oct 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
on 6 Oct 2016
KSSV
on 6 Oct 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
on 6 Oct 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.
Categories
Find more on String Parsing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!